Pax (команда) - Википедия - pax (command)
В Windows NT человек команда | |
Разработчики) | Разные Открытый исходный код и коммерческий Разработчики |
---|---|
изначальный выпуск | 1995 |
Операционная система | Unix и Unix-подобный, IBM i, Майкрософт Виндоус |
Платформа | Кроссплатформенность |
Тип | Команда |
человек является утилита архивирования сделано POSIX[противоречивый ], определяется с 1995 года.[1] Вместо того, чтобы разбираться в несовместимых вариантах, которые подкрались между деготь
и cpio
, а также их реализации в различных версиях Unix, то IEEE разработал новую утилиту для архивирования, которая может поддерживать различные форматы архивов с полезными опциями обоих архиваторов. В человек
команда доступен в Unix и Unix-подобный операционные системы и дальше IBM i,[2] Microsoft Windows NT,[3] и Windows 2000.
IEEE в 2001 г. определил новую человек формат, который в основном деготь с дополнительными расширенными атрибутами.[4]
Название «pax» является аббревиатурой от переносной обмен архивами. Вызов и структура команды - это своего рода объединение обоих деготь
и cpio
.
История
Версия программы pax была создана Китом Мюллером в 1992–1993 годах. Версия впервые появилась в 4.4BSD (1995).[5] Пакса приняли в X / Открыть выпуск 4 (Единая спецификация Unix версия 1) в 1995 г.[1] Эти версии pax только определили интерфейс командной строки как гибрид tar / cpio, но формат файла pax еще не был определен. (Работа по определению Pax, вероятно, предшествует работе Мюллера; похоже, что она находится в ранних черновиках POSIX.2 и IEEE 1003.1b примерно 1991 г.)
В 1997 г. Sun Microsystems предложил способ добавления расширений к формату устар. Позже этот метод был принят в стандарте POSIX.1-2001 как новый человек формат файла. Спецификация POSIX для человек Утилита была обновлена и теперь включает этот формат.[1]
Функции
Режимы
pax имеет четыре основных режима, которые вызываются комбинацией -р ("читать и -w ("написать") варианты.
Эта таблица суммирует модальное поведение:
Вариант | Режим | Описание |
---|---|---|
(никто) | "список" | показывает содержимое архива, ничего не изменяет и не извлекает. |
-р | "читать" | читает и извлекает содержимое архива |
-w | "записывать" | создает архивы или добавляет файлы в архив |
-rw | "копия" | читает и копирует файлы и дерево каталогов в указанный каталог |
Эта модель похожа на cpio, которая имеет аналогичный набор основных операций.
Примеры
Перечислить содержимое архива:
$ pax
Распаковать содержимое архива в текущий каталог:
$ pax -r
Создайте архив текущего каталога:
$ printf '.' | pax -w> archive.tar$ pax -w. > archive.tar
Скопируйте текущее дерево каталогов в другое место:
$ printf '.' | pax -w> archive.tar$ pax -rw целевой_директор.
(Целевой каталог должен существовать заранее!)
Вызов команды
По умолчанию он использует стандартный ввод / вывод для операций архивирования и листинга, но это можно изменить с помощью параметра tar-style. -f
который указывает файл архива. Pax отличается от cpio тем, что рекурсивно рассматривает содержимое каталога; чтобы отключить это поведение, в POSIX pax есть опция -d
чтобы отключить его.
В человек команда - это мешанина из cpio и деготь Особенности. Нравиться деготь, человек рекурсивно обрабатывает записи каталога. Эта функция может быть отключена с помощью -d
для поведения в стиле cpio. Обработка файлового ввода / вывода также является смешанной: когда список имен файлов указан в командной строке, они принимаются как шарики раковины для ввода или вывода файла (tar-like); иначе человек берет cpio-стилевое поведение при использовании стандартного ввода для списка файлов. Ну наконец то, человек поддерживает чтение / запись в указанный архивный файл с использованием tar -f ФАЙЛ
вариант.
Например, если кто-то желает архивировать текущий каталог в стиле cpio, человек может использоваться с найти так же, как при использовании cpio:
$ найти . -глубина -принт | pax -wd> archive.tar
(Эта конструкция бессмысленна без фильтров для найти, поскольку он становится идентичным приведенному выше примеру.)
Команда для извлечения содержимого из архива такая же, как cpio:
$ pax -r
Эти команды можно вызывать в деготь
-подобный синтаксис:
$ pax -wf archive.tar. # запись (архив)$ pax -rf archive.tar # читать (извлекать)$ pax -f archive.tar # список$ pax -rw. archive_dir # копия
Сжатие
Большинство реализаций 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 | человек
Поддержка формата
Почти все дошедшие до нас версии человек происходит из исходной реализации 4.4BSD. Большинство из них наследует форматы, поддерживаемые этой версией, которые можно выбрать через -Икс вариант:
- cpio - Расширенный формат обмена cpio, указанный в стандарте IEEE Std 1003.2 ("POSIX.2").
- bcpio - старый двоичный формат cpio.
- sv4cpio - System V выпуск 4 cpio.
- sv4crc - System V выпуска 4 cpio с контрольными суммами crc файла.
- деготь - Старый формат tar BSD, как в BSD4.3.
- Устар (дефолт) - Формат обмена tar, указанный в стандарте IEEE Std 1003.2 ("POSIX.2").
Примечательно, что поддержка 2001 г. человек формат не поддерживается этим устаревшим pax. Так обстоит дело с большинством дистрибутивов Linux (в которых используется MirBSD филиал pf MirCPIO-paxmirabilis)[6][7][8] и дальше FreeBSD.[5]
В Семейная реликвия pax поддерживает человек поддержка, а также множество дополнительных форматов.[9]
Несколько томов
pax поддерживает архивирование на нескольких томах. Когда будет достигнут конец тома, появится следующее сообщение:
$ pax -wf / dev / fd0.ВНИМАНИЕ! Требуется изменение объема архива pax./ dev / fd0 готов к архиву объем: 2Загрузите СЛЕДУЮЩИЙ НОСИТЕЛЬ (при необходимости) и убедитесь, что запись включена.Чтобы продолжить, введите «y», «.» для выхода из pax или «s» для переключения на новое устройство.Если вы не можете изменить носитель, введите «s»Готово ли устройство и онлайн? >
При восстановлении архива с нескольких носителей, pax запрашивает следующий носитель таким же образом, когда конец носителя достигается раньше, чем конец архива.
Стандартизация, прием и популярность
Несмотря на то, что в 2001 году он был стандартизирован IEEE, по состоянию на 2010 год pax пользуется относительно небольшой популярностью или принятием.[нужна цитата ] Отчасти это связано с тем, что пользователи Unix не нуждались в этом; просто комитет POSIX хочет иметь более последовательный интерфейс. Пакс также довольно болтлив и ожидает взаимодействия с пользователем, когда что-то пойдет не так.[нужна цитата ]
pax должен присутствовать во всех соответствующих системах Стандартная база Linux начиная с версии 3.0 (выпущена 6 июля 2005 г.),[10] но пока мало Дистрибутивы Linux отправить и установить по умолчанию. Однако большинство дистрибутивов включают pax как отдельно устанавливаемый пакет.
pax также присутствовал в Windows NT, где он ограничен файловыми архивами (ленты не поддерживаются).[3] Позже он был перенесен в Interix подсистема. Он не поддерживает архивирование или восстановление Win32 ACL.[11]
Пакеты обрабатываются Установщик (OS X) часто несут основную часть своего содержимого в файле Archive.pax.gz, который можно прочитать с помощью системной утилиты pax (семейная реликвия).[12]
Смотрите также
Рекомендации
- ^ а б c Базовые спецификации Open Group, выпуск 6 - POSIX.1-2001 (IEEE Std 1003.1) Авторские права © 2001-2004 IEEE и Открытая группа
- ^ IBM. "Qshell для программирования IBM System i версии 7.2" (PDF). Получено 2020-09-05.
- ^ а б Эрик Пирс (1997). Коротко о Windows NT: краткое руководство для системных администраторов. O'Reilly Media, Inc. стр.271. ISBN 978-1-56592-251-8.
- ^ "GNU tar 1.30: 8.1 Использование меньшего пространства за счет сжатия". www.gnu.org. Получено 22 апреля 2018.
- ^ а б FreeBSD Общие команды Руководство –
- ^ "MirCPIO - paxmirabilis: tar и даже ar!". MirBSD. Получено 24 января 2020.
- ^ «MirCPIO в Launchpad». launchpad.net. Получено 22 апреля 2018.
- ^ "Ошибка № 456405" pax отсутствие поддержки формата "pax" приводит к сбою LSB ": Ошибки: MirCPIO". bugs.launchpad.net. Получено 22 апреля 2018.
- ^ "pax.1". heirloom.sourceforge.net. Получено 22 апреля 2018.
- ^ Примечания к выпуску LSB 3.0 В архиве 2011-07-17 на Wayback Machine обратите внимание, что pax был добавлен: LSB 3.0. Команды и утилиты требует pax, но LSB 2.1.0. Команды и утилиты не требует этого
- ^ http://support.microsoft.com/kb/246322
- ^ «Извлечение файлов из пакета pax.gz». cocoabuilder.com. Архивировано из оригинал 14 февраля 2015 г.. Получено 15 августа 2013.
дальнейшее чтение
- Фриш, Элин (2001). Карманный справочник команд Windows 2000. О'Рейли. ISBN 978-0-596-00148-3.
внешняя ссылка
- Архивирование с помощью Pax Статья в Основы FreeBSD на ONLamp.com, к Дрю Лавин (2002-08-22)