Windows NT pax команда | |
Разработчики) | Различные разработчики с открытым кодом и коммерческие разработчики |
---|---|
изначальный выпуск | 1995 |
Операционная система | Unix и Unix-подобные , IBM i , Microsoft Windows |
Платформа | Кроссплатформенность |
Тип | Командование |
pax - это утилита архивирования, доступная для различных операционных систем и определенная с 1995 года. [1] Вместо того, чтобы разбираться с несовместимыми опциями, которые возникли между разными версиями Unix , tar
и cpio
вместе с их реализациями в различных версиях Unix , IEEE разработал новую архивную утилиту, которая может поддерживать различные форматы архивов с полезными опциями от обоих архиваторов. pax
Команда доступна на Unix и Unix-подобных операционных систем и на IBM я , [2] Microsoft Windows NT , [3] и Windows 2000.
В 2001 году IEEE определил новый формат pax , который в основном представляет собой tar с дополнительными расширенными атрибутами. [4] [5]
Название «pax» является аббревиатурой от портативного обмена архивами . Вызов и структура команды - это своего рода объединение обоих tar
и cpio
.
История [ править ]
Версия программы pax была создана Китом Мюллером в 1992–1993 годах. Версия впервые появилась в 4.4BSD (1995). [6] Pax был принят в выпуск 4 X / Open ( единая спецификация Unix версии 1) в 1995 году. [1] Эти версии pax определяли интерфейс командной строки только как гибрид tar / cpio, но формат файла pax не был пока не определено. (Работа по определению Pax, вероятно, предшествует работе Мюллера; похоже, что она находится в ранних черновиках POSIX.2 и IEEE 1003.1b примерно 1991 г.)
В 1997 году Sun Microsystems предложила метод добавления расширений к формату ustar. Позже этот метод был принят в стандарте POSIX.1-2001 как новый формат файла pax . Спецификация POSIX для утилиты pax была обновлена, чтобы включить этот формат. [1]
Особенности [ править ]
Режимы [ править ]
pax имеет четыре основных режима, которые вызываются комбинацией параметров -r («чтение») и -w («запись»).
Эта таблица суммирует модальное поведение:
Вариант | Режим | Описание |
---|---|---|
(никто) | "список" | показывает содержимое архива, ничего не изменяет и не извлекает. |
-р | "читать" | читает и извлекает содержимое архива |
-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 рекурсивно обрабатывает записи каталога, и эту функцию можно отключить для поведения в стиле cpio. Обработка файлового ввода / вывода также является смешанной: когда в командной строке указывается список имен файлов, они используются как глобусы оболочки для ввода или вывода файлов (как tar); в противном случае pax использует поведение в стиле cpio, используя стандартный ввод для списка файлов. Наконец, pax поддерживает чтение / запись в именованный архивный файл с использованием опции tar .-d
-f FILE
Например, если кто-то хочет архивировать текущий каталог в стиле cpio, pax можно использовать с find так же, как с cpio:
$ найти. -глубина-отпечаток | pax -wd> archive.tar
(Эта конструкция бессмысленна без каких-либо фильтров для поиска , поскольку она становится идентичной приведенному выше примеру.)
Команда для извлечения содержимого из архива такая же, как и cpio :
$ pax -r <archive.tar
Эти команды также можно вызывать в tar
синтаксисе, подобном -подобному:
$ 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 | человек
Поддержка формата [ править ]
Почти все существующие версии pax произошли от исходной реализации 4.4BSD. Большинство из них наследует форматы, поддерживаемые этой версией, выбираемые с помощью параметра -x :
- 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»).
Примечательно, что поддержка формата pax 2001 не поддерживается этим устаревшим pax. Так обстоит дело с большинством дистрибутивов Linux (которые используют ветвь MirBSD пакета MirCPIO-paxmirabilis ) [7] [8] [9] и FreeBSD . [6]
В Heirloom Project pax есть поддержка pax, а также множество дополнительных форматов. [10]
Несколько томов [ править ]
pax поддерживает архивирование на нескольких томах. Когда будет достигнут конец тома, появится следующее сообщение:
$ pax -wf / dev / fd0.ВНИМАНИЕ! Требуется изменение объема архива pax. / dev / fd0 готов к архивированию тома: 2 Загрузите СЛЕДУЮЩИЙ НОСИТЕЛЬ (если требуется) и убедитесь, что запись включена. Введите «y», чтобы продолжить, «.» , чтобы выйти из pax, или «s», чтобы переключиться на новое устройство. Если вы не можете сменить носитель, введите «s». Готово ли устройство и подключено к сети? >
При восстановлении архива с нескольких носителей, pax запрашивает следующий носитель таким же образом, когда конец носителя достигается раньше, чем конец архива.
Стандартизация, прием и популярность [ править ]
Несмотря на то, что в 2001 году он был стандартизирован IEEE, по состоянию на 2010 год pax пользуется относительно небольшой популярностью или принятием. [ необходима цитата ] Это отчасти потому, что пользователи Unix не нуждались в этом; просто комитет POSIX хочет иметь более последовательный интерфейс. Пакс также довольно болтлив и ожидает взаимодействия с пользователем, когда что-то пойдет не так. [ необходима цитата ]
pax должен присутствовать во всех системах, совместимых с Linux Standard Base, начиная с версии 3.0 (выпущенной 6 июля 2005 г.), [11], но до сих пор немногие дистрибутивы Linux поставляются и устанавливают его по умолчанию. Однако большинство дистрибутивов включают pax как отдельно устанавливаемый пакет.
pax также присутствует в Windows NT , где он ограничен файловыми архивами (ленты не поддерживаются). [3] Позже он был перемещен в подсистему Interix . Он не поддерживает архивирование или восстановление списков ACL Win32 . [12]
Пакеты, обрабатываемые программой установки (OS X), часто несут основную часть своего содержимого в файле Archive.pax.gz, который можно прочитать с помощью системной утилиты pax (семейная реликвия). [13]
См. Также [ править ]
- Список команд Unix
- Список форматов архивов
- Сравнение файловых архиваторов
Ссылки [ править ]
- ^ a b c Базовые спецификации Open Group, выпуск 6 - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 IEEE и The Open Group
- ^ IBM . «Qshell для программирования IBM System i версии 7.2» (PDF) . Проверено 5 сентября 2020 .
- ^ а б Эрик Пирс (1997). Коротко о Windows NT: краткий справочник для системных администраторов . O'Reilly Media, Inc. стр. 271 . ISBN 978-1-56592-251-8.
- ^ «GNU tar: 8.1 Использование меньшего пространства за счет сжатия» . www.gnu.org . Архивировано из оригинала 6 марта 2016 года . Проверено 22 апреля 2018 года .
- ^ "GNU tar: 4.3.2 Расширенные атрибуты файлов" . www.gnu.org . Архивировано из оригинала 28 декабря 2019 года . Проверено 27 января 2021 года .
- ^ a b - Руководство по основным командам 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. Заархивировано 17 июля 2011 г. в 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.
Внешние ссылки [ править ]
В Викиучебнике есть книга на тему: Руководство по командам Windows. |
В Wikibook Guide to Unix есть страница по темам: Команды |
- Архивирование с Pax статьи в основах FreeBSD на ONLamp.com , по Dru Lavigne (2002-08-22)