pax (Unix)

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску
У этого термина существуют и другие значения, см.Pax.

pax (акроним дляportablearchive exchange, букв. «портируемый обмен архивов») —утилита архивирования, созданнаяPOSIX и определенная в стандарте POSIX.1-2001[1]. Команда вызова и её структура представляет собой объединение и унификациюtar иcpio.

Содержание

Особенности

[править |править код]

Режимы

[править |править код]

pax имеет четыре основных режима, которые определяются комбинацией ключей-r («read» — чтение)-w («write» — запись).

Следующая таблица подытоживает основные режимы работы:

ОпцияРежимОписание
«list»выводит содержимое архива, не изменяя или извлекая чего-либо.
-r«read»читает и извлекает содержимое архива
-w«write»создаёт архив или дополняет его файлами
-rw«copy»читает и копирует файлы и структуру каталогов в указанный каталог

Примеры:
Вывести содержимое архива:

pax < archive.tar

Извлечь содержимое архива в текущий каталог:

pax -r < archive.tar

Создать архив текущего каталога:
Когда используется в стилеcpio, то командаfind может использоваться для получения списка файлов, подлежащих архивированию:

find . -depth -print | pax -wd > archive.tar

Копирование текущего каталога в другое место:
Целевой каталог должен быть создан заранее.

find . -depth -print | pax -rwd target_dir

Команда вызова

[править |править код]

pax может использоваться по аналогии, какcpio илиtar.Синтаксcpio получает список файлов со стандартного ввода (stdin), при архивировании или уже существующий архив, при выводе содержимого или извлечении файлов:

find . -depth -print | pax -wd > archive.tar

и

pax -r < archive.tar

соответственно.

Также возможен вызов этих команд аналогичноtar:

pax -wf archive.tar .

и

pax -rf archive.tar

И для ясности и полноты:
Вывод списка файлов из архива:

pax -f archive.tar

и режим «копирования»:

pax -rw . archive_dir

Опция-f позволяет указать, с каким архивом производить работу, вместо записи вstdout или чтенияstdin.Применение опции-d вместе сfind избавляет от прохождения деревьев каталоговpax, так как это будет сделано вfind

Сжатие

[править |править код]

Большинство реализаций pax предоставляют опцию-z (gzip) и-j (bzip2) для сжатия. Эта возможность, однако, не предписывается стандартом. Pax не может дополнять сжатые архивы.

Пример для извлечения gzip-архива:

pax -rzf archive.tar.gz

В связи с возможностью использовать pax в стилеcpio имеется возможность применить какую-либо другую программу сжатия, например,xz:

pax -w . | xz > archive.tar.xz

и вывести содержимое xz-архива:

xzcat archive.tar.xz | pax

Поддерживаемые форматы

[править |править код]

На сентябрь 2009 версии pax, включаемые в большинство дистрибутивов Linux и BSD (pax[2]), поддерживает следующие форматы, активируемые посредством опции-x:

  • cpio — расширенный cpio-формат для обмена, указанный в стандарте IEEE Std 1003.2 («POSIX.2»).
  • bcpio — старый cpio-формат.
  • sv4cpio — System V release 4 cpio.
  • sv4crc — System V release 4 cpio с использованиемcrc контрольной суммы.
  • tar — старый BSD tar формат, появившийся в BSD4.3.
  • ustar(default) — формат обмена tar, указанный в стандарте IEEE Std 1003.2 («POSIX.2»).

Важно, что формат pax сам по себе не поддерживается существующей версии pax. Некоторые реализации, например Heirloom pax, поддерживают перспективные форматы,[3], включая собственно сам pax-формат.

Поддержка нескольких томов

[править |править код]

pax поддерживает возможность созданиямноготомных архивов. Когда достигается конец тома, появляется следующее сообщение:

Внимание! pax требуется сменить том архива./dev/fd0 готов для тома: 2Загрузите следующий элемент хранения (диск) если требуетсяи убедитесь что разрешена запись. Введите "y" для продолжения,"." для завершения pax, или "s" для переключения на новое устройство.Если Вы не можете сменить элемент хранения (диск) введите "s"Устройство готово и подключено? >

Когда производится восстановление из многотомного архива, pax запрашивает следующий элемент хранения аналогичным образом, когда конец элемент хранения достигнут до достижения конца архива.

Стандартизация, принятие и популяризация

[править |править код]

Несмотря на то, стандартизован в 2001 в IEEE, на 2010 pax пользуется сравнительно небольшой популярностью.

pax обязателен для присутствия во всех совместимых системах поLinux Standard Base, начиная с версии 3.0 (релиз от 6 Июля, 2005),[4] но до сих пор малодистрибутивов Linux предоставляют по умолчанию. Тем не менее, большинство дистрибутивов включают pax отдельным пакетом.

pax также присутствует вWindows NT, где он ограничен файловыми архивами (лента не поддерживается).[5] Затем было перемещено в подсистемуInterix. Создание и восстановление Win32 ACLs не поддерживается.[6]

Пакеты, обрабатываемыеустановщикомOS X, нередко упакованы в файле Archive.pax.gz, который может быть прочитан с помощью утилиты pax.[7]

Примечания

[править |править код]
  1. The Open Group Base Specifications Issue 6Архивная копия от 18 сентября 2010 наWayback Machine — POSIX.1-2001(IEEE Std 1003.1) Copyright © 2001—2004 The IEEE andThe Open GroupАрхивная копия от 26 февраля 2011 наWayback Machine
  2. man pax
  3. Heirloom pax man page . Дата обращения: 14 февраля 2015. Архивировано 11 ноября 2014 года.
  4. Release notes for LSB 3.0Архивировано 17 июля 2011 года. заметим что pax был добавлен:LSB 3.0. Commands and UtilitiesАрхивная копия от 3 марта 2016 наWayback Machine требование pax, ноLSB 2.1.0. Commands and UtilitiesАрхивная копия от 3 марта 2016 наWayback Machine не требует этого
  5. Eric Pearce. Windows NT in a nutshell: a desktop quick reference for system administrators (англ.). —O’Reilly Media, 1997. — P. 271. —ISBN 978-1-56592-251-8.
  6. System Administration of Backups, Tar, and Pax in Interix . Дата обращения: 14 февраля 2015. Архивировано 25 октября 2012 года.
  7. Extracting files from a pax.gz package . cocoabuilder.com. Дата обращения: 15 августа 2013. Архивировано изоригинала 14 февраля 2015 года.

Ссылки

[править |править код]

См. также

[править |править код]
Перейти к шаблону «Команды Unix»
Команды Unix
Перейти к шаблону «POSIX.1-2008»
УтилитыPOSIX.1-2008
Перейти к шаблону «Форматы архивов»
Только архивирование
Только сжатие
Архивирование
и сжатие
Упаковка
и распространение ПО
Источник —https://ru.wikipedia.org/w/index.php?title=Pax_(Unix)&oldid=146590045
Категории:
Скрытые категории: