pax (команда) - pax (command)

редактировать
pax
Windows Команда NT pax Команда Windows NT pax
Разработчик (s) Различные разработчики с открытым исходным кодом и коммерческие разработчики
Первоначальный выпуск1995 г.; 25 лет назад (1995 г.)
Операционная система Unix и Unix-like, IBM i, Microsoft Windows
Тип Команда

pax - это утилита архивирования, созданная POSIX, определенная с 1995 года. Вместо того, чтобы разбираться с несовместимыми параметрами, которые возникли между tar и cpio вместе с их реализациями в различных версиях Unix, IEEE разработал новый архив утилита, которая может поддерживать различные форматы архивов с полезными опциями от обоих архиваторов. Команда pax доступна в операционных системах Unix и Unix-like , а также в IBM i, Microsoft Windows NT и Windows 2000.

IEEE в 2001 году определила новый формат pax, который в основном представляет собой tar с дополнительными расширенными атрибутами.

Имя «pax» - это аббревиатура от портативного обмена архивами. Вызов и структура команды в некоторой степени объединяют tarи cpio.

Содержание

  • 1 История
  • 2 Возможности
    • 2.1 Режимы
      • 2.1.1 Примеры
    • 2.2 Вызов команды
    • 2.3 Сжатие
    • 2.4 Поддержка формата
    • 2.5 Многотомная
  • 3 Стандартизация, признание и популярность
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки

История

Версия программы pax была создана Китом Мюллером в 1992–1993 годах. Версия впервые появилась в 4.4BSD (1995). Pax был принят в X / Open, выпуск 4 (Single Unix Specification версия 1) в 1995 году. Эти версии pax определяли интерфейс командной строки только как гибрид tar / cpio, но формат файла pax еще не определен. (Работа по определению Pax, вероятно, предшествует работе Мюллера; похоже, что это было в ранних черновиках POSIX.2 и IEEE 1003.1b примерно 1991 года.)

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

Особенности

Режимы

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

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

ПараметрРежимОписание
(нет)"список"показывает содержимое архива, ничего не изменяет и не извлекает.
-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.

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

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

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

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

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

$ find. -глубина-отпечаток | pax -wd>archive.tar

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

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

$ pax -r < archive.tar

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

$ pax -wf archive.tar. # запись (архив) $ pax -rf archive.tar # чтение (извлечение) $ pax -f archive.tar # список $ 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

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

Практически все существующие версии pax произошли от исходной реализации 4.4BSD. Большинство из них наследует форматы, поддерживаемые этой версией, выбираемые с помощью параметра -x:

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

Примечательно, что поддержка формата pax 2001 не поддерживается этим устаревшим pax. Так обстоит дело в большинстве дистрибутивов Linux (в которых используется ветвь MirBSD pf MirCPIO-paxmirabilis) и в FreeBSD.

Heirloom Project pax поддерживает поддержку pax. а также множество дополнительных форматов.

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

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

$ pax -wf / dev / fd0. ВНИМАНИЕ! Требуется изменение объема архива pax. / dev / fd0 готов к архивированию тома: 2 Загрузите СЛЕДУЮЩИЙ НОСИТЕЛЬ (если требуется) и убедитесь, что запись включена. Чтобы продолжить, введите «y», «.» для выхода из pax или «s» для переключения на новое устройство. Если вы не можете изменить носитель, введите «s». Готово ли устройство и подключено к сети?>

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

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

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

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

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

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

См. также

Ссылки

Дополнительная литература

  • Frisch, leen (2001). Карманный справочник команд Windows 2000. О'Рейли. ISBN 978-0-596-00148-3.

Внешние ссылки

В Викиучебнике есть книга по теме: Руководство по командам Windows
В Викибуке Руководство по Unix есть страница по теме: Команды
Последняя правка сделана 2021-06-01 06:42:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте