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

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

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

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

tar

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

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

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

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

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

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

zip

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

Работа с zip:

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

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

gzip

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

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

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

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

или

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

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

bzip2

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

Команды bzip2:

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

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

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

  • Сергей

    Как распаковать директорию с tar в указанную директорию? Архив .tar лежит в поддиректориях раздела, архив создавался сполным путем с места создания, т.е. /media/user/device/backup… и мненужно распаковать выбранную директорию по нехватке места, потом ее удалить с архива, для освобождения места.