Программное обеспечение > Программы работы с архивами

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

(1/3) > >>

ivm:
Полезная информация по работе с архивами в Linux.
Рассмотрим на примерах работу архиваторов, таких как 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 и извлекает из него файлы.

--- Код: ---tar -zxvpf archive.tar.gz
--- Конец кода ---
Извлекает с сохранением прав доступа и принадлежности оригинальных файлов (Здесь использованы опции: ``z'' (сжать резервную копию программой ``gzip''), ``c'' (создать архивный файл), ``v'' (отображать список файлов при архивации), ``p'' (сохранить в архиве права доступа к файлам: при восстановлении они будут тоже восстановлены). Опция ``f'' (file) указывает, что следующий параметр задает имя файла или устройства для записи. Обратите внимание на то, что имя архива будет содержать дату его создания, поскольку в имя файла включена команда ``date''. Общее соглашение об именах состоит в том, чтобы к имени архива добавлять ``tar'', а к имени сжатого архива добавлять `` 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 и извлекает из него файлы.

alv:
Игорь, наверное, про xz неплохо добавить?
Ведь нынче это
а) уже стандарт, и
б) очень хорошая штука.
Ну, что он хорошо сжимает, все знают и я знал :)
Но тут обнаружил, что на современных многоядерных процессорах он ещё и очень быстро это делает. То есть на моём 4-ядернике с HT он реально загружает все 8 потоков, так что gzip плетётся далеко сзади, а bzip2 вообще остаётся за горизонтом.
Это я когда с refracta развлекался, обнаружил: поставил для пробы галочку использовать xz - и еле успел покурить, как он запаковал мои полтора гигабайта.

ivm:

--- Цитировать --- Формат XZ используется GNU Coreutils, начиная с версии 7.1. Начиная с версии 1.22, GNU tar позволяет автоматически сжимать и распаковывать архивы tar с помощью xz, обеспечивая прозрачную работу....
--- Конец цитаты ---

Есть ещё Тест архиваторов в Linux. Получается, что действительно не заслуженно обойдён вниманием, но информации о его применении в сети крайне мало.
Запаковывается с ключами
--- Код: ---tar -c --xz   -f archive.tar.xz   /some_directory
--- Конец кода ---
Распаковывается архив с расширением .tar.xz
--- Код: ---tar -xpJf archive.tar.xz
--- Конец кода ---

vita:
Проверила работу данного формата контейнера в Matuntu-TT64-mini. Каталог размером 50,2 МБ сжался до 19,2 МБ без каких-либо дополнительных настроек

В дистрибутивах Trusty Tahr формат XZ поддерживается архиватором TAR.

alv:
Ребята, то, что xz жмёт очень сильно - ясно, LZMA подразумевает. Но то, что в нём хорошо реализовали многопоточность... Ну читал я про это, ну даже верил... Но когда это видишь своими глазами - понимаешь, что это действительно блеск, и остаётся только снять шляпу перед разработчиками.
Умеют же некоторые...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии