Введение
Утилита архивирования pax — это утилита, доступная для различных операционных систем и определённая начиная с 1995 года. Вместо того чтобы разбираться с несовместимыми опциями, возникшими между tar и cpio, а также с их реализациями в различных версиях Unix, IEEE разработала новую утилиту архивирования pax, способную поддерживать различные форматы архивов с полезными опциями из обеих программ. Команда pax доступна в операционных системах Unix и Unix-подобных, а также в IBM i и Microsoft Windows NT. Формат не поддерживается командами pax в большинстве дистрибутивов Linux и FreeBSD, но поддерживается командами tar из GNU и FreeBSD; дополнительно формат поддерживается командами pax в AIX, Solaris и HP-UX. Название "pax" является акронимом от "portable archive exchange" (портативный обмен архивами), но также является аллюзией на латинское слово "pax" (мир); синтаксис и структура команды представляют собой своего рода мирное объединение tar и cpio.
pax is an archiving utility available for various operating systems and defined since 1995. Rather than sort out the incompatible options that have crept up between tar and cpio, along with their implementations across various versions of Unix, the IEEE designed new archive utility pax that could support various archive formats with useful options from both archivers. The pax command is available on Unix and Unix like operating systems and on IBM i, and Microsoft Windows NT The format is not supported by pax commands in most Linux distributions and in FreeBSD, but it is supported by tar commands from GNU and FreeBSD; the format is further supported by pax commands in AIX, Solaris and HP UX. The name "pax" is an acronym for portable archive exchange, but is also an allusion to the Latin word for "peace"; the command invocation and structure represents somewhat of a peaceful unification of both tar and cpio.
История
Первая публичная реализация pax была написана Марком Х. Колберном в 1989 году. Колберн опубликовал её в Usenix/IEEE POSIX в качестве замены TAR и CPIO. Страницы руководства для pax в HP-UX, IRIX и SCO UNIX указывают авторство pax Колберну. Уже в проекте POSIX.2, версия 10 от июля 1990 года, описывается команда pax. Кроме того, проекты POSIX.2 и IEEE 1003.1b в 1991 году также описывают команду pax, поддерживающую форматы архивов cpio и ustar. Другая версия программы pax была создана Китом Мюллером в 1992–1993 годах и впервые появилась в 4.4BSD (1995) и FreeBSD. Формат поддерживается командой pax в AIX, Solaris и HP-UX. Он также поддерживается модулем tarfile в Python, библиотекой libarchive, лицензированной BSD, 7-Zip, GNU tar и FreeBSD tar. Команда pax проекта Heirloom, разработанная Гуннаром Риттером в 2003 году, поддерживает формат pax, а также множество других форматов.
Стандартизация, принятие и популярность
Несмотря на стандартизацию IEEE в 2001 году, по состоянию на 2010 год pax остаётся относительно непопулярным и малораспространённым. Это отчасти связано с тем, что пользователи Unix не испытывали в нём необходимости; инициатива исходила от комитета POSIX, стремившегося к более единообразному интерфейсу. Pax также достаточно многословен и требует взаимодействия с пользователем при возникновении ошибок. Начиная с версии 3.0 (выпущенной 6 июля 2005 года), Linux Standard Base требует наличия pax во всех соответствующих стандартам системах, однако пока что лишь немногие дистрибутивы Linux поставляют и устанавливают его по умолчанию. Тем не менее, большинство дистрибутивов включают pax в качестве отдельно устанавливаемого пакета. Pax также присутствовал в Windows NT, где его функциональность ограничивалась файловыми архивами (поддержка ленточных накопителей отсутствовала). Впоследствии он был перенесён в подсистему Interix. Он не поддерживает архивирование и восстановление Win32 ACL. Pax также был доступен в Windows 2000. Пакеты, обрабатываемые установщиком (macOS), часто содержат основную часть своего содержимого в архиве pax.gz, который можно прочитать с помощью системной утилиты pax (heirloom).