Команда 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
.
Версия программы 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:
Примечательно, что поддержка формата 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 (семейная реликвия).
В Викиучебнике есть книга по теме: Руководство по командам Windows |
В Викибуке Руководство по Unix есть страница по теме: Команды |