Jump to content

пакс (команда)

чел.
Оригинальный автор(ы) Марк Х. Колберн (при поддержке Ассоциации USENIX )
Разработчик(и) Различные с открытым исходным кодом и коммерческие разработчики разработчики
Первоначальный выпуск 1989 год ; 35 лет назад ( 1989 )
Написано в Колберн пакс, Мюллер пакс, Пакс семейной реликвии : C
Операционная система Unix , Unix-подобные , IBM i , Windows
Платформа Кросс-платформенный
Тип Команда
Лицензия Colburn pax: Предыдущая лицензия BSD
Muller pax: пункт BSD-4
Пакс семейной реликвии: zlib
Windows: фирменное программное обеспечение.

pax — это утилита архивирования, доступная для различных операционных систем и разработанная с 1995 года. [1] Вместо того, чтобы перебирать несовместимые варианты, вкравшиеся между tar и cpioНаряду со своими реализациями в различных версиях Unix , IEEE разработал новую утилиту архивирования pax, которая могла поддерживать различные форматы архивов с полезными опциями обоих архиваторов. pax команда доступна в Unix и Unix-подобных операционных системах , а также в IBM i . [2] и Microsoft Windows NT [3] до Windows 2000 .

В 2001 году IEEE определил новый формат pax , который по сути представляет собой tar с дополнительными расширенными атрибутами. [4] [5] Формат не поддерживается командами pax в большинстве дистрибутивов Linux и FreeBSD, но поддерживается командами tar из GNU и FreeBSD; формат дополнительно поддерживается командами pax в AIX, Solaris и HP-UX.

Название «pax» является аббревиатурой от портативного обмена архивами , но также является намеком на латинское слово, означающее «мир»; вызов и структура команды представляют собой своего рода мирное объединение обоих tar и cpio.

Первая публичная реализация pax была написана Марком Х. Колберном в 1989 году. Колберн разместил ее на comp.sources.unix как замена Usenix/IEEE POSIX для TAR и CPIO . На страницах руководства для pax в HP-UX , IRIX и SCO UNIX pax указан как Colburn. [6]

Уже в проекте POSIX.2 10 от июля 1990 года рассматривается команда pax . [7] Кроме того, проекты POSIX.2 и IEEE 1003.1b 1991 года охватывают команду pax , включающую форматы архивов cpio и ustar.

Другая версия программы pax была создана Китом Мюллером в 1992–1993 годах. [8] Эта версия впервые появилась в 4.4BSD (1995 г.). [9] Команда Pax появилась в X/Open, выпуск 4 ( Единая спецификация Unix, версия 1) в 1995 году. [1] включая форматы архивов cpio и ustar, которые также были единственными двумя форматами, представленными в Единой спецификации Unix 1997 года.

В 1997 году компания Sun Microsystems предложила метод добавления расширений к формату ustar. Этот метод был принят в стандарте POSIX.1-2001 как новый формат файла pax . Спецификация POSIX для Утилита pax была обновлена ​​и теперь включает этот формат. [1]

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

В этой таблице суммировано модальное поведение:

Вариант Режим Описание
(никто) "список" показывает содержимое архива, ничего не изменяет и не извлекает.
"читать" читает и извлекает содержимое архива
"писать" создает архивы или добавляет файлы в архив
-rw "копировать" читает и копирует файлы и дерево каталогов в указанный каталог

Эта модель похожа на cpio, который имеет аналогичный набор основных операций.

Список содержимого архива:

$ pax < archive.tar

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

$ pax -r < archive.tar

Создайте архив текущего каталога:

$ printf '.' | pax -w > archive.tar
$ pax -w . > archive.tar

Скопируйте текущее дерево каталогов в другое место:

$ printf '.' | pax -w > archive.tar
$ pax -rw target_dir .

(Целевой каталог должен существовать заранее!)

Вызов команды

[ редактировать ]

По умолчанию pax использует стандартный ввод/вывод для операций архивирования и листинга. Это можно изменить с помощью опции «tar-style». -f который указывает файл архива. Pax отличается от cpio тем, что содержимое каталога рассматривается рекурсивно; чтобы отключить это поведение, в POSIX pax есть опция -d чтобы отключить его.

The Команда pax представляет собой смесь cpio и особенности смолы . Нравиться берет , pax рекурсивно обрабатывает записи каталога, эту функцию можно отключить с помощью -d для поведения в стиле cpio. Обработка файлового ввода/вывода также является смешанной: когда список имен файлов указан в командной строке, они воспринимаются как общие имена оболочки для ввода или вывода файлов (подобно tar); в противном случае Пакс берет на себя cpio -стиль использования стандартного ввода для списка файлов. Окончательно, pax поддерживает чтение/запись в именованный архивный файл с использованием tar. -f FILE вариант.

Например, если требуется архивировать текущий каталог в стиле cpio, pax можно использовать с найти так же, как с помощью cpio:

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

(Эта конструкция бессмысленна без каких-либо фильтров для find , поскольку он становится идентичным приведенному выше примеру.)

Команда для извлечения содержимого архива такая же, как и CPIO :

$ pax -r < archive.tar

Эти команды можно вызвать в tar-подобный синтаксис:

$ pax -wf archive.tar . # write (archive)
$ pax -rf archive.tar   # read (extract)
$ pax -f archive.tar    # list
$ pax -rw . archive_dir # copy

Большинство реализаций pax используют -z ( gzip ) и -j ( bzip2 ) переключает сжатие; однако эта функция не указана в POSIX. Важно отметить, что pax не может добавлять файлы в сжатые архивы.
Пример извлечения gzip-архива:

$ pax -rzf archive.tar.gz

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

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

и указав в качестве входных данных архив, сжатый с помощью xz:

$ xzcat archive.tar.xz | pax

Поддержка форматов

[ редактировать ]

POSIX.1-2001 требует, чтобы команда pax поддерживала как минимум форматы архивов cpio, ustar и pax.

Версии команды pax , основанные на реализации 4.4BSD, обычно наследуют форматы, поддерживаемые этой версией, которые можно выбрать с помощью опция:

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

POSIX.1-2001 Формат pax не поддерживается этой версией команды pax BSD . Формат не поддерживается в большинстве дистрибутивов Linux ( команда pax из MirBSD ветки MirCPIO-paxmirabilis ). [10] [11] [12] и во FreeBSD . [9] Формат поддерживается командой pax в AIX. [13] Солярис [14] и HP-UX. Он дополнительно поддерживается модулем tarfile Python, [15] лиархивом с лицензией BSD, [16] [17] от 7-ZIP [18] и далее GNU tar [19] и FreeBSD tar. [20] Команда pax Heirloom Project , разработанная Гуннаром Риттером в 2003 году, поддерживает формат pax , а также множество дополнительных форматов. [21]

Несколько томов

[ редактировать ]

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

$ pax -wf /dev/fd0 .
ATTENTION! pax archive volume change required.
/dev/fd0 ready for archive volume: 2
Load the NEXT STORAGE MEDIA (if required) and make sure it is WRITE ENABLED.
Type "y" to continue, "." to quit pax, or "s" to switch to new device.
If you cannot change storage media, type "s"
Is the device ready and online? >

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

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

[ редактировать ]

Несмотря на то, что в 2001 году он был стандартизирован IEEE, по состоянию на 2010 год pax пользуется относительно небольшой популярностью и распространением. [ нужна ссылка ] Частично это связано с тем, что пользователям Unix в этом не было никакой необходимости; просто комитет POSIX хочет иметь более последовательный интерфейс. Пакс также довольно разговорчив и ожидает взаимодействия с пользователем, когда что-то пойдет не так. [ нужна ссылка ]

pax должен присутствовать во всех системах, соответствующих стандарту Linux Standard Base, начиная с версии 3.0 (выпущенной 6 июля 2005 г.), [22] но пока лишь немногие дистрибутивы Linux поставляются и устанавливают его по умолчанию. Однако большинство дистрибутивов включают pax как отдельно устанавливаемый пакет. [23] [24] [25]

pax также присутствует в Windows NT , где он ограничен файловыми архивами (ленты не поддерживаются). [3] Позже он был перенесен в подсистему Interix . Он не поддерживает архивирование или восстановление Win32 списков управления доступом . [26] pax в дальнейшем присутствовал в Windows 2000. [27]

Пакеты, обрабатываемые установщиком (macOS), часто содержат большую часть своего содержимого в файле Archive.pax.gz, который можно прочитать с помощью системной утилиты pax (реликвия). [28]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Базовые спецификации открытой группы, выпуск 6 — POSIX.1-2001 (IEEE Std 1003.1). Авторские права © 2001-2004. IEEE and The Open Group.
  2. ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
  3. ^ Перейти обратно: а б Эрик Пирс (1997). Коротко о Windows NT: настольный краткий справочник для системных администраторов . О'Рейли Медиа, Инк. с. 271 . ISBN  978-1-56592-251-8 .
  4. ^ «GNU tar: 8.1 Использование меньшего пространства за счет сжатия» . www.gnu.org . Архивировано из оригинала 6 марта 2016 года . Проверено 22 апреля 2018 г.
  5. ^ «GNU tar: 4.3.2 Расширенные атрибуты файлов» . www.gnu.org . Архивировано из оригинала 28 декабря 2019 года . Проверено 27 января 2021 г.
  6. ^ TAR versus Portability – PAX and USTAR , invisible-island.net
  7. ^ IEEE P1003.2 Проект 11.2 — сентябрь 1991 г. (pdf) — Shell and Utilities, Princeton.edu — В проекте 11 указаны изменения в pax , поэтому он должен был быть в проекте 10.
  8. ^ Пакс , svnweb.freebsd.org
  9. ^ Перейти обратно: а б pax(1) FreeBSD по основным командам Руководство
  10. ^ «MirCPIO — paxmirabilis: смола и даже ар!» . МирБСД . Проверено 24 января 2020 г.
  11. ^ «MirCPIO в Launchpad» . launchpad.net . Проверено 22 апреля 2018 г.
  12. ^ «Ошибка № 456405 «отсутствие поддержки формата pax для формата «pax» приводит к сбою LSB»: Ошибки: MirCPIO» . bugs.launchpad.net . Проверено 22 апреля 2018 г.
  13. ^ pax для AIX 7.3, ibm.com
  14. ^ pax для Solaris 11.1, docs.oracle.com
  15. ^ tarfile , python.org
  16. ^ libarchive , libarchive.org
  17. ^ libarchive(3) , freebsd.org
  18. ^ ИСТОРИЯ 7-Zip , 7-zip.org
  19. ^ руководство по tar , gnu.org
  20. ^ смола , freebsd.org
  21. ^ "чел.1" . heirloom.sourceforge.net . Проверено 22 апреля 2018 г.
  22. ^ Примечания к выпуску LSB 3.0. Архивировано 17 июля 2011 г. на Wayback Machine. Отмечается, что был добавлен pax: LSB 3.0. Для команд и утилит требуется pax, но LSB 2.1.0. Команды и утилиты этого не требуют.
  23. ^ Пакс , pkgs.org
  24. ^ спакс , pkgs.org
  25. ^ семейная реликвия-pax , pkgs.org
  26. ^ «Системное администрирование резервных копий, Tar и Pax в Interix» . Архивировано из оригинала 23 августа 2010 г.
  27. ^ Виртуальный x86 , copy.sh
  28. ^ «Извлечение файлов из пакета pax.gz» . www.coabuilder.com. Архивировано из оригинала 14 февраля 2015 года . Проверено 15 августа 2013 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4981b75661712df3400fcc51fa89c46d__1718688720
URL1:https://arc.ask3.ru/arc/aa/49/6d/4981b75661712df3400fcc51fa89c46d.html
Заголовок, (Title) документа по адресу, URL1:
pax (command) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)