10 лучших инструментов командной строки для архивации в Linux

В повседневной жизни мы часто сталкиваемся с архивными файлами на различных платформах, будь то Windows, Mac или Linux. На всех этих платформах доступно несколько приложений для создания и извлечения архивных файлов. Когда речь идет о работе на платформе Linux, работа с архивными файлами является частой задачей.

В этой статье мы рассмотрим инструменты для работы с архивами, доступные в стандартных дистрибутивах Linux, а также их возможности, использование и примеры.

1. tar

tar – это стандартный инструмент архивации в UNIX/Linux, который изначально был разработан как Программа архивации лент, но впоследствии превратился в универсальную утилиту архивации, которая может работать с архивными файлами всех типов.

tar поддерживает различные фильтры архивирования с множеством опций.

  • -A: Добавлять tar-файлы к существующим архивам.
  • -c: Создать новый архивный файл.
  • -d: Сравнить архив с указанной файловой системой.
  • -j: Сжать с помощью bzip.
  • -r: Добавлять файлы в существующие архивы.
  • -t: Вывести список содержимого существующих архивов.
  • -u: Обновить существующий архив.
  • -x: Извлечь файлы из существующего архива.
  • -z: Сжать с помощью gzip.
  • --delete: Удалить файлы из существующего архива.

Создать архивный файл tar:

tar -zcvf name_of_tar.tar.gz /path/to/folder

Распаковать архивный файл tar:

tar -zxvf name_of_tar_file.tar.gz

2. shar

shar, сокращение от Shell Archive, – это сценарий оболочки, который при выполнении создает исходные файлы. Это самораспаковывающийся формат архива, который сейчас считается устаревшим инструментом и требует Unix Bourne Shell для извлечения файлов.

Преимущество shar в том, что он имеет формат обычного текста, но он может быть потенциально опасен, поскольку выводит исполняемый файл.

Параметры shar:

  • -o: Сохранить вывод в архивные файлы, как указано.
  • -l: Ограничить размер выходных данных, но не разбивать их на части.
  • -L: Ограничить размер выходных данных и разделить их.
  • -n: Имя архива, которое должно быть включено в заголовок.
  • -a: Разрешить автоматическую генерацию заголовков.

Примечание: Опция -o требуется, если используется опция -l или -L, а опция -n – если используется опция -a.

Создать архивный файл shar:

shar file_name.extension > filename.shar

Распаковать архивный файл shar:

unshar file_name.shar

3. ar

ar (сокращение от archiver) – это утилита для создания и работы с архивами, в основном используемая для библиотек бинарных объектных файлов. Она может создавать архивы любого типа, но в значительной степени была заменена tar. В настоящее время она используется в основном для создания и обновления статических файлов библиотек.

Опции ar:

  • -d: Удалить модули из архива.
  • -m: Переместить модули в архив.
  • -p: Распечатать указанные члены архива.
  • -q: Быстрое добавление.
  • -r: Вставка членов файла в архив.
  • -s: Добавить индекс в архив.
  • -a: Добавить новый файл к существующим членам архива.

Создайте архив с помощью ar:

ar cr libmath.a subtraction.o division.o

Распакуйте архивный файл ar:

ar x libmath.a

4. cpio

cpio (Copy In and Out) – это инструмент архивации общего назначения в Linux, который широко используется в менеджере пакетов Red Hat (RPM) и в initramfs ядра Linux. cpio также является важным инструментом архивации в программе установки Apple (pax).

Параметры cpio:

  • -0: Чтение списка имен файлов, заканчивающегося нулевым символом вместо новой строки.
  • -a: Сброс времени доступа.
  • -A: Добавить в архив.
  • -b: Поменять байты местами.
  • -d: Создавать каталоги по мере необходимости.

Создайте архивный файл cpio:

ls | cpio -ov > /path/to/output_folder/obj.cpio

Распаковать архивный файл cpio:

cpio -idv < /path/to/folder/obj.cpio

5. gzip

gzip – это широко используемая утилита для сжатия и распаковки файлов, которая сжимает файлы и создает tar-шары в формате *.tar.gz или *.tgz. gzip также поддерживает конкатенацию файлов.

Параметры gzip:

  • --stdout или --to-stdout: Вывод на стандартный вывод.
  • --decompress или --uncompress: Распаковать файл.
  • -d: Распаковать файл.
  • -f: Принудительное сжатие или распаковка.

Создать gzip-архив:

tar -cvzf name_of_archive.tar.gz /path/to/folder

Распаковать gzip-архив:

gunzip file_name.tar.gz

После распаковки распакуйте tar-архив с помощью:

tar -xvf file_name.tar

Примечание: Из-за архитектуры и функциональности gzip трудно восстановить поврежденные .gz архивные файлы. Рекомендуется создавать несколько резервных копий важных файлов в разных местах.

6. bzip2

bzip2 – это инструмент для сжатия файлов, который использует алгоритм Burrows-Wheeler и Run-Length Encoding (RLE) для достижения более высокой степени сжатия, чем gzip, и создает сжатые файлы с расширением .bz2.

Параметры bzip2:

  • -d: Распаковать файл.
  • -z: Сжать файл (поведение по умолчанию).
  • -k: Сохранять исходный файл при сжатии.
  • -f: Принудительная перезапись, если выходной файл существует.

Сжать файл:

bzip2 filename.txt

Распаковать файл .bz2:

bzip2 -d filename.txt.bz2

Сжать файл и сохранить оригинал:

bzip2 -k filename.txt

7. xz

xz – еще одна популярная утилита для сжатия файлов, которая использует алгоритм LZMA2, предлагая лучший коэффициент сжатия, чем gzip и bzip2 для больших файлов, и создает .xz сжатые файлы.

Параметры xz:

  • -d: Распаковать файл.
  • -k: Сохранить исходный файл после сжатия.
  • -z: Сжать файл (поведение по умолчанию).
  • -f: Принудительно перезаписывать существующие файлы.

Сжать файл:

xz filename.txt

Распаковать файл .xz:

xz -d filename.txt.xz

Сжать файл и сохранить оригинал:

xz -k filename.txt

8. zip

zip – одна из самых распространенных утилит архивации файлов, которая сжимает файлы в один .zip архив и широко используется для кроссплатформенного обмена файлами.

zip Опции:

  • -r: Рекурсивно архивировать содержимое каталога.
  • -u: Обновить архив новыми файлами.
  • -d: Удалить указанные файлы из архива.
  • -m: Переместить файлы в архив и удалить оригиналы.

Создать zip-архив:

zip archive_name.zip file1 file2 file3

Рекурсивное сжатие каталога:

zip -r archive_name.zip /path/to/directory

Распаковать zip-архив:

unzip archive_name.zip

9. rar

rar – это фирменная утилита архивации, которая широко используется для сжатия больших файлов и поддерживает архивы, защищенные паролем, и многотомные архивы.

Параметры rar:

  • a: Добавить файлы в архив.
  • x: Извлечь файлы из архива.
  • v: Создавать многотомные архивы.
  • p: Установка пароля для архива.

Создание архива rar:

rar a archive_name.rar file1 file2

Распаковать архив rar:

rar x archive_name.rar

Создайте защищенный паролем архив rar:

rar a -p archive_name.rar file1 file2

10. 7z

7z – это утилита высокого сжатия, которая использует алгоритм LZMA для создания .7z файлов и обеспечивает лучшее сжатие, чем большинство других утилит.

Параметры 7z:

  • a: Добавить файлы в архив.
  • x: Извлечь файлы из архива.
  • l: Вывести список содержимого архива.
  • d: Удалить файл из архива.

Создать архив 7z:

7z a archive_name.7z file1 file2

Распакуйте 7z-архив:

7z x archive_name.7z

Заключение

С помощью этих дополнительных инструментов у вас теперь есть полный арсенал утилит для архивирования и сжатия файлов, позволяющий справиться с любой задачей по сжатию файлов в Linux. У каждого инструмента есть свои сильные стороны и варианты использования, поэтому выбирайте тот, который лучше всего соответствует вашим потребностям.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)