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

В данной статье мы будем обсуждать инструменты для работы с архивами, доступные в стандартных дистрибутивах Linux, их особенности, примеры и т. д. Статья разделена на две части, каждая из них содержит пять командных инструментов для работы с архивами (т. е. всего 10 лучших командных инструментов для работы с архивами).
Что такое архивированный файл?
Архивированный файл – это сжатый файл, состоящий из одного или нескольких компьютерных файлов, а также метаданных.
Особенности архивирования
- Сжатие данных
- Шифрование
- Сцепление файлов
- Автоматическое извлечение
- Автоматическая установка
- Информация о источнике, объеме и носителях данных
- Разделение файлов
- Контрольная сумма
- Информация о структуре каталогов
- Другие метаданные (данные о данных)
- Обнаружение ошибок
Область применения
- Хранение компьютерных файлов вместе с метаданными.
- Полезно для передачи файлов локально.
- Полезно для передачи файлов через веб.
- Упаковка программного обеспечения.
Полезные приложения архивации в стандартных дистрибутивах Linux следующие:
1. Команда tar
tar является стандартным инструментом архивации в UNIX/Linux. В своих ранних версиях он использовался для архивации на ленте, постепенно развиваясь в общеподходящий пакет сжатия с гибкостью, способным обрабатывать различные типы архивных файлов.tar поддерживает множество фильтров сжатия с опциями.
опции tar
- -A : Добавляет tar файлы в существующие архивы.
- -c : Создает новый архив.
- -d : Сравнивает архив с указанными файловыми системами.
- -j : Сжатие архива с использованием bzip.
- -r : Добавляет файлы в существующие архивы.
- -t : Просмотр содержимого существующих архивов.
- -u : Обновление архива
- -x : Разпаковка файла из существующего архива.
- -z : Сжатие архива с использованием gzip.
- –delete : Удаление файлов из существующего архива.
Примеры tar
Создание архивного файла tar.
# tar -zcvf name_of_tar.tar.gz /path/to/folder
Разпаковка файла tar.
# tar -zxvf Name_of_tar_file.tar.gz
Чтобы более детальные примеры, смотрите 18 Примеров Команды Tar в Linux.
Команда shar
shar, что означает Shell архив, является оболочкой сценария, выполнение которого создаст файлы. shar является самораспаковывающимся архивным файлом, который является устаревшей утилитой и требует Unix Bourne Shell для извлечения файлов. shar имеет преимущество быть обычным текстом, однако это потенциально опасно, поскольку оно создает исполняемый файл.
shar параметры
- -o : Сохранить вывод в архивные файлы, как указано в параметре.
- -l : Ограничить размер вывода, как указано в параметре, но не разбивать его.
- -L : Ограничить размер вывода, как указано в параметре и разбить его.
- -n : Имя архива, которое нужно включить в заголовок файлов shar.
- -a : Разрешить автоматическое создание заголовков.
Примечание: Опция ‘-o‘ обязательна при использовании опции ‘-l‘ или ‘-L‘ и опция ‘-n‘ обязательна при использовании опции ‘-a‘.
Примеры использования shar
Создать архивный файл shar.
# shar file_name.extension > filename.shar
Извлечь архивный файл shar.
# unshar file_name.shar
3. Команда ar
ar является утилитой создания и манипулирования архивами, в основном используемой для бинарных файловых библиотек объектов. ar означает архиватор, который можно использовать для создания архива любого вида для любой цели, но в основном он был заменен на ‘tar’, и в наши дни используется только для создания и обновления статических библиотечных файлов.
Параметры ar
- -d : Удалить модули из архива.
- -m : Переместить участников в архив.
- -p : Распечатать указанных участников из архива.
- -q : Быстрое добавление.
- -r : Вставить файл-участник в архив.
- -s : Добавить индекс в архив.
- -a : Добавить новый файл к существующим участникам архива.
Примеры команды ar
Создание архива с помощью инструмента ‘ar‘ с статической библиотекой ‘libmath.a‘ с файлами ‘substraction’ и ‘division’.
# ar cr libmath.a substraction.o division.o
Для извлечения файла архива ‘ar’.
# ar x libmath.a
4. cpio
cpio означает Копировать в и из. Cpio – это универсальный файловый архиватор для Linux. Он активно используется менеджером пакетов RedHat (RPM) и в initramfs ядра Linux, а также является важным инструментом архивирования в Установщике Apple Computer (pax).
Опции cpio
- -0 : Чтение списка имен файлов, завершающееся нулевым символом, вместо новой строки.
- -a : Сбросить время доступа.
- -A : Добавить.
- -b : Обмен.
- -d : Создание каталогов.
Примеры команды cpio
Создание архива ‘cpio’.
# cd tecmint # ls file1.o file2.o file3.o # ls | cpio -ov > /path/to/output_folder/obj.cpio
Для извлечения файла из архива cpio.
# cpio -idv < /path/to folder/obj.cpio
5. Gzip
Gzip – это стандартная и широко используемая утилита для сжатия и распаковки файлов. Gzip позволяет объединение файлов. Сжатие файла с использованием gzip приводит к созданию архива tarball в формате “*.tar.gz” или “*.tgz“.
- –stdout : Вывод результата в стандартный вывод.
- –to-stdout : Вывод результата в стандартный вывод.
- –decompress : Распаковка файла.
- –uncompress : Распаковка файла.
- -d : Распаковка файла.
- -f : Принудительное сжатие/распаковка.
Примеры использования gzip:
Создание архива gzip.
# tar -cvzf name_of_archive.tar.gz /path/to/folder
Извлечение архива gzip.
# gunzip file_name.tar.gz
Для выполнения вышеуказанной команды необходимо указать следующую команду.
# tar -xvf file_name.tar
Примечание: Архитектура и функционал gzip делают восстановление поврежденного архива ‘gzipped tar archive’ сложным. Рекомендуется создавать несколько резервных копий важных файлов, сжатых с помощью gzip, в различных местах.
Это все на данный момент. Мы обсудим другие программы для сжатия и распаковки файлов, доступные для Linux, в нашей следующей статье. В ожидании оставайтесь с нами и подключайтесь к Tecmint. Не забудьте оставить свой ценный отзыв в разделе комментариев ниже.
Source:
https://www.tecmint.com/command-line-archive-tools-for-linux/