Утилиты для архивации и распаковки файлов

В данной инструкции рассмотрены популярные утилиты для архивации и распаковки файлов, доступные в ОС МСВСфера:

  • 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