Утилиты для архивации и распаковки файлов
В данной инструкции рассмотрены популярные утилиты для архивации и распаковки файлов, доступные в ОС МСВСфера:
tar
bzip2
gzip
xz
zstd
zip
unrar
Окружение
МСВСфера АРМ/Сервер версии 8.x.
МСВСфера АРМ/Сервер версии 9.x.
tar
tar — один из самых популярных инструментов архивации файлов в ОС семейства Linux. Утилита tar установлена в МСВСфера по умолчанию.
Синтаксис
$ tar [параметры] <файл_архива> [файлы]
Параметры
-A,--concatenate— присоединить существующий архив к другому;-c,--create— создать новый архив;-t,--list— вывести список содержимого архива, если файлы не указаны, то вывести информацию обо всех файлах;-x,--extract— распаковать файлы из архива;-f— вывести результат в file;-C <dir>— изменить директорию на<dir>перед выполнением операции;-j,--bzip2— использовать сжатие bzip2 при создании файлаtar, в результате получается сжатый архив с расширением*.tar.bz2;-v,--verbose— вывести всю информацию о текущем процессе и показать сведения об уже завершённом процессе.
Примеры использования
Архивация файла в формат tar без сжатия:
$ tar -cf file.tar file.txt
Aрхивация каталога в формат tar без сжатия:
$ tar -cf files.tar ~/files
Распаковка архива в текущий каталог:
$ tar -xf files.tar
Распаковка архива в указанный каталог:
$ tar -xf files.tar -C /home/folder
Просмотр содержимого архива без распаковки:
$ tar -t files.tar
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man tar
bzip2
bzip2 — это утилита командной строки, предназначенная для сжатия и распаковки файлов. Она использует алгоритм сжатия текста с блочной сортировкой Барроуза-Уилера и кодирования Хаффмана. Принимает список имён файлов в качестве входных данных и заменяет каждый файл его сжатой версией. Утилита установлена в ОС МСВСфера по умолчанию.
Примечание
Утилита bzip2 может работать только с одиночными файлами. Для работы с несколькими файлами или папками можно использовать эту утилиту вместе с tar. Пример такого варианта использования приведён ниже.
Синтаксис
$ bzip2 [параметры] <файл>
Параметры
-d,--decompress— разархивировать файл;-t,--test— проверить целостность архива;-z,--compress— принудительно сжать;-k,--keep— сохранить исходные файлы при архивации или разархивации;-s— использовать меньше оперативной памяти за счёт снижения скорости архивации, рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше);-v,--verbose— выводить дополнительную информацию в процессе работы;-V,--version— показать версию программного обеспечения и лицензию;-h,--help— вывести справку;-1—-9— установить степень сжатия (чем больше число, тем выше степень сжатия).
Примеры использования
Архивация одного файла с наивысшей степенью сжатия и с сохранением исходного файла. В результате будет создан новый файл с расширением .bz2:
$ bzip2 -9k file.txt
Распаковка файла в текущую папку с сохранением исходного архива:
$ bzip2 -dk file.txt.bz2
Архивация файла с использованием tar для сжатия нескольких файлов:
$ tar -cjf file.tar.bz2 file1 file2 file3
Распаковака архива .tar.bz2 в текущую папку:
$ tar -xjf file.tar.bz2
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man bzip2
gzip
gzip — один из самых популярных алгоритмов сжатия, который позволяет уменьшить размер файла и сохранить исходный режим файла, владельца и отметку времени. Утилита установлена в ОС МСВСфера по умолчанию.
Примечание
Для запаковки нескольких файлов в один архив можно использовать эту утилиту вместе с tar. Пример такого варианта использования приведён ниже.
Синтаксис
$ gzip [опция] [файл]
Параметры
-c,--stdout— печатать в стандартный вывод, сохранять исходные файлы без изменений;-d,--decompress— распаковать архив;-k,--keep— сохранить исходный файл;-l,--list— отобразить содержимое архива;-t,--test— проверить целостность архива;-1—-9— установить степень сжатия (чем больше число, тем выше степень сжатия);-r,--recursive— рекурсивная работа с каталогом;-h,--help— вывести справку по использованию утилиты.
Примеры использования
Архивация файла с сохранением исходного файла:
$ gzip -k file.txt
Распаковка архива с сохранением исходного файла (архива):
$ gzip -dk file.txt.gz
Архивация нескольких файлов:
$ gzip file1.txt file2.txt
Примечание
В результате будет создано 2 архива: file1.txt.gz и file2.txt.gz.
Архивация нескольких файлов в один архив:
$ tar -czf files.tar.gz file1.txt file2.txt
Распаковка архива с несколькими файлами в текущую папку:
$ tar -xzf files.tar.gz
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man gzip
xz
xz — формат контейнера для архивов, использующий алгоритм сжатия LZMA2 и призванный заменить формат
контейнера lzma. Как и форматы gzip и bzip2, он является контейнером для единственного файла,
поэтому его обычно используют совместно с форматом tar. Утилита установлена в ОС МСВСфера по умолчанию.
Синтаксис
$ xz [параметры] <файл>
Параметры
-d— принудительная разархивация;-z— сжимает входной файл (используется по умолчанию);-t,--test— проверить целостность архива*.xz;-k,--keep— сохранять исходные файлы при архивации или разархивации;-c,--stdout— направить сжатые данные в стандартный вывод и не удалять входные файлы;-v,--verbose— отображать процесс сжатия или распаковки файлов;-0–-9, — установить степень сжатия (чем больше число, тем выше степень сжатия).
Примеры использования
Архивация файла с сохранением исходного файла c максимальной степенью сжатия:
$ xz -9k file.txt
Распаковка архива:
$ xz -d file.txt.xz
Архивация нескольких файлов в один архив с помощью tar:
$ tar -cJf files.tar.xz file1.txt file2.txt
Распаковка сжатого .tar.xz архива в текущую папку:
$ tar -xJf files.tar.xz
Проверка целостности без распаковки:
$ xz -t files.tar.xz
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man xz
zstd
zstd — алгоритм сжатия данных без потерь. Алгоритм сочетает словарный алгоритм сжатия данных типа LZ77 и эффективное энтропийное кодирование типа ANS. Утилита установлена в ОС МСВСфера по умолчанию.
Синтаксис
$ zstd [параметры] <файл>
Параметры
-d— принудительная разархивация;-t— проверка целостности указанного(ых) файла(ов) без разархивации;-k— сохранять исходные файлы при архивации или разархивации;-s— снижает требования к объёму используемой оперативной памяти за счет снижения скорости архивации. Эту опцию рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше);-v— выводить дополнительную информацию в процессе работы (представляет интерес в диагностических целях);-1–-9— установить степень сжатия (чем больше число, тем выше степень сжатия).
Примеры использования
Архивация файла с сохранением исходного файла c максимальной степенью сжатия:
$ zstd -9k file.txt
Распаковка архива с сохранением исходного файла:
$ zstd -dk file.txt.zst
Использование zstd вместе с tar для сжатия нескольких файлов:
$ tar --zstd -cf files.tar.zst file1.txt file2.txt
Распаковка архива .tar.zst:
$ tar --zstd -xf files.tar.zst
Проверка целостности архива без распаковки:
$ zstd -t file.txt.zst
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man zstd
zip
zip — утилита для создания сжатых архивов. Zip-архивы очень часто используются для обмена файлами в Интернете. С помощью этой утилиты можно сжимать как файлы, так и папки. Утилита установлена в ОС МСВСфера по умолчанию.
Синтаксис
$ zip [параметры] <имя_архива> <файлы>
Параметры
-d— удалить файл из архива;-r— рекурсивное архивирование, то есть с вхождением во вложенные каталоги;-0— только архивировать, без сжатия;-9— наилучшая степень сжатия;-F— исправить zip-файл;-e— шифровать файлы.
Примеры использования
Архивация каталога:
$ zip archive.zip -r /home/folder
Архивация нескольких файлов:
$ zip archive.zip file1.txt file2.txt
Архивация файла с максимальной степенью сжатия:
$ zip -9 archive.zip file1.txt
Распаковка архива в текущую папку:
$ unzip archive.zip
Распаковка в определённую папку:
$ unzip archive.zip -d /tmp
Извлечение определённого файла из архива:
$ unzip archive.zip file2.log
Проверка содержимого архива без распаковки:
$ unzip -l archive.zip
Проверка целостности архива без распаковки:
$ unzip -t archive.zip
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man zip
unrar
unrar — это инструмент на базе «Терминала», разработанный для извлечения и открытия RAR-архивов в системах семейства Linux.
Для установки выполните команду в «Терминале»:
$ sudo dnf install unrar
Синтаксис
$ unrar [параметры] <имя_архива> [<путь_разархивирования>]
Параметры
e— распаковать архив;l— вывести список файлов внутри архива;p— вывести распакованный файл в стандартный вывод;t— проверить архив;v— вывести подробную информацию про архив;x— извлечь файлы, сохраняя полный путь внутри архива.-ad— добавить имя архива к пути распаковки;-ai— игнорировать атрибуты файлов;-inul— не выводить сообщения об ошибках;-p— указать пароль архива;-sl— распаковывать только файлы, меньше указанного размера;-u— обновить уже распакованные файлы;-y— отвечать «y» на все запросы;-x— не распаковывать указанные файлы;-ts— сохранять временную метку исходных файлов.
Примеры использования
Распаковка архива в текущую папку:
$ unrar x archive.rar
Распаковка архива в определенную папку:
$ unrar x archive.rar /home/folder
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man unrar