В повседневной жизни мы часто сталкиваемся с архивными файлами на различных платформах, будь то Windows, Mac или Linux. На всех этих платформах есть несколько приложений для создания и извлечения архивных файлов. При работе на платформе Linux работа с архивными файлами — частая задача.
В этой статье мы рассмотрим инструменты для работы с архивами, доступные в стандартных дистрибутивах Linux, а также их функции, использование и примеры.
Статья разделена на две части, в каждой из которых рассматриваются пять инструментов командной строки для работы с архивами (всего 10 лучших инструментов командной строки для работы с архивами).
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
Для получения более подробных примеров прочтите Примеры команд Tar в Linux.
2. Команда shar
shar, сокращение от Shell Archive, — это сценарий оболочки, который при выполнении создаёт исходные файлы. Это формат самораспаковывающегося архива, который в настоящее время считается устаревшим инструментом и требует оболочки Unix Bourne для распаковки файлов.
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.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
архивные файлы сложно. Рекомендуется создавать несколько резервных копий важных файлов в разных местах.
Заключение
На этом пока всё. В следующей статье мы рассмотрим другие утилиты для сжатия и распаковки, доступные для Linux. Оставайтесь с нами. Не забудьте оставить свой ценный отзыв в комментариях ниже.
Продолжение: