Введение

Утилита архивирования 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 была написана Марком Х. Колберном в 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).