В повседневной жизни мы часто сталкиваемся с архивными файлами на различных платформах, будь то 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. У каждого инструмента есть свои сильные стороны и варианты использования, поэтому выбирайте тот, который лучше всего соответствует вашим потребностям.






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