Как создать или распаковать архив в Linux

0
8

Рассмотрим на примерах работу архиваторов, таких как tar, zip, gzip и bzip2.
Немного теории. Что такое архив Что такое метаданные

Архив — файл, содержащий в себе информацию из одного или нескольких, иногда сжатых (без потерь), других файлов. Является результатом работы программы-архиватора.

Архив почти всегда содержит метаданные. Например:
* Имена файлов (кроме некоторых программ сжатия одиночных файлов — например, gzip, где в качестве имени файла используется имя архива без расширения, добавленного такой программой)
* Идентификаторы владельцев, групп, и т. п. файлов, и их прав
* Размеры файлов
* Даты изменения, создания файлов
* Контрольные суммы файлов для проверки правильности распаковки
* Размер и контрольные суммы архива
* Избыточные данные для восстановления данных при повреждении
* Цифровая подпись создателя архива

А теперь практика.

tar

Исторически один из самых старый архиваторов в Linux. Как архиватора его роль сводится к объединению файлов в один архив, без компрессии(сжимания). При совместном использование с другим архиватором можно добиться хорошей компрессии файлов и каталогов.

Создание архива и распаковка tar:

tar -cf archive.tar folder/

Создает архив archive.tar, содержащий директорию folder/.

tar -xf archive.tar

Извлекает содержимое архива archive.tar в текущую директорию.

tar -zxf archive.tar.gz

Извлекает содержимое архива, сжатого gzip. Используйте -j вместо -z для архива bzip2.

tar -vxf archive.tar

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

zip

zip может одновременно и архивировать, и сжимать файлы; то есть вы можете сжать различные файлы, поместив их при этом в архив. Он известен еще с 1998 года и метод его работы был реализован на многих платформах, следовательно, это один из самых мобильных вариантов (особенно — если вам необходим доступ к вашему архиву из системы Windows).

Работа с zip:

zip -r archive folder

Создает архив archive.zip с содержимым каталога folder.

unzip archive.zip

Извлекает содержимое архива archive.zip в текущую директорию, создавая вложенные директории (используйте -j чтоб не создавать вложенных директорий).

gzip

gzip может сжимать файлы, но не архивировать. Однако он прекрасно работает, если его использовать вместе с архивирующим инструментом — как бывает на практике, gzip и tar отлично работают вместе.

Архивирование gzip:

gzip file.tar

Сжимает файл file.tar и создает file.tar.gz.

tar czf file.tar.gz folder/

Архивирует и сжимает folder/ в файл file.tar.gz.

gunzip file.tar.gz

или

gzip -d file.tar.gz

Распаковывает file.tar.gz

tar zxf file.tar.gz

Распаковывает архив file.tar.gz и извлекает из него файлы.

bzip2

bzip2, как и gzip, сжимает, но не архивирует. И, опять-таки, он отлично работает с tar, если вы хотите получить и архивацию, и сжатие. Bzip2 сжимает лучше, чем gzip, но процесс сжатия у bzip2 занимает больше времени, чем у gzip.

Команды bzip2:

bzip2 file.tar

Сжимает файл file.tar и создает file.tar.bz2.

bunzip2 file.tbz

Распаковывает file.tbz и создает file.tar

tar jxf file.tbz

Распаковывает архив file.tbz и извлекает из него файлы.