Pax (Unix)
   HOME

TheInfoList



OR:

pax is an archiving utility available for various operating systems and defined since 1995.The Open Group Base Specifications Issue 6
- POSIX.1-2001 ''(IEEE Std 1003.1)'' Copyright © 2001-2004 The IEEE an
The Open Group
/ref> 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 IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS in ...
, Microsoft Windows NT, and Windows 2000. In 2001, IEEE defined a new ''pax'' format which is basically ''tar'' with additional extended attributes. 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''. The command invocation and structure is somewhat a unification of both tar and cpio.


History

The first public implementation of pax was written by Mark H. Colburn in 1989. Colburn posted it to as ''Usenix/IEEE POSIX replacement for TAR and CPIO''. Manual pages for pax on
HP-UX HP-UX (from "Hewlett Packard Unix") is Hewlett Packard Enterprise's proprietary implementation of the Unix operating system, based on Unix System V (initially System III) and first released in 1984. Current versions support HPE Integrity Ser ...
,
IRIX IRIX ( ) is a discontinued operating system developed by Silicon Graphics (SGI) to run on the company's proprietary MIPS workstations and servers. It is based on UNIX System V with BSD extensions. In IRIX, SGI originated the XFS file system and ...
, and SCO UNIX attribute pax to Colburn. As early as POSIX.2 draft 10 from July 1990 covers ''pax'' command. Furthermore, POSIX.2 and IEEE 1003.1b drafts in 1991 cover ''pax'' command, featuring cpio and ustar archive formats. Another version of the pax program was created by Keith Muller in 1992–1993. The version first appeared in
4.4BSD The History of the Berkeley Software Distribution begins in the 1970s. 1BSD (PDP-11) The earliest distributions of Unix from Bell Labs in the 1970s included the source code to the operating system, allowing researchers at universities to modify a ...
(1995). Pax command appeared in X/Open issue 4 ( Single Unix Specification version 1) in 1995, featuring cpio and ustar archive formats, which were also the only two formats featuring in the 1997 Single Unix Specification. In 1997,
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
proposed a method for adding extensions to the ustar format. This method was accepted for the POSIX.1-2001 standard as the new ''pax'' file format. The POSIX specification for the utility was updated to include this format.


Features


Modes

pax has four general modes that are invoked by a combination of the ("read") and ("write") options. This table summarizes the modal behaviour: This model is similar to cpio, which has a similar set of basic operations.


Examples

List contents of an archive: Extract contents of an archive into the current directory: Create an archive of the current directory: Copy current directory tree to another location: (The target directory must exist beforehand!)


Command invocation

By default, pax uses the standard input/output for archive and listing operations. This can be changed with the "tar-style" option that specifies the archive file. Pax differs from cpio by recursively considering the content of a directory; to disable this behavior, POSIX pax has an option to disable it. The command is a mish-mash of and features. Like , processes directory entries recursively, a feature that can be disabled with for cpio-style behavior. The handling of file input/outputs is also a mix: when a list of file names is specified on the command line, they are taken as shell globs for file input or listing (tar-like); otherwise takes the -style behavior of using the standard input for a file list. Finally, supports reading/writing to a named archive file using tar's option. For example, if one desires a cpio-style archiving of the current directory, can be used with just like one does using cpio: (This construct is pointless without any filters for , as it becomes identical to the above example.) The command for extracting the contents for an archive is the same as : It is possible to invoke these commands in a tar-like syntax as well:


Compression

Most implementations of pax use the ( gzip) and ( bzip2) switches for compression; this feature however, is not specified by POSIX. It is important to note that pax cannot append to compressed archives.
Example for extracting a gzipped archive: As in tar and cpio, pax output can be piped to another compressor/decompressor program. As an example xz is used here: and listing an xz-compressed archive as the input:


Format support

POSIX.1-2001 requires that ''pax'' command supports the archive formats cpio, ustar and pax at a minimum. The versions of ''pax'' command that stem from the 4.4BSD implementation usually inherit the formats supported by that version, selectable via the option: * cpio – The extended cpio interchange format specified in the IEEE Std 1003.2 ("POSIX.2") standard. * bcpio – The old binary cpio format. * sv4cpio – The System V release 4 cpio. * sv4crc – The System V release 4 cpio with file crc checksums. * tar – The old BSD tar format as found in BSD4.3. * ustar ''(default)'' – The tar interchange format specified in the IEEE Std 1003.2 ("POSIX.2") standard. The POSIX.1-2001 ''pax'' format is not supported by this BSD version of ''pax'' command. The format is not supported on most Linux distributions (whose ''pax'' command is from the MirBSD branch of ''MirCPIO-paxmirabilis'') and on
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
. The format is supported by ''pax'' command in AIX, Solaris and HP-UX. It is further supported by Python tarfile module, by BSD-licensed libarchive, by 7-ZIP and further by GNU tar and FreeBSD tar. The Heirloom Project pax command, developed by Gunnar Ritter in 2003, supports the ''pax'' format as well as many extra formats.


Multiple volumes

pax supports archiving on multiple volumes. When the end of a volume is reached, the following message appears: $ pax -wf /dev/fd0 . ATTENTION! pax archive volume change required. /dev/fd0 ready for archive volume: 2 Load the NEXT STORAGE MEDIA (if required) and make sure it is WRITE ENABLED. Type "y" to continue, "." to quit pax, or "s" to switch to new device. If you cannot change storage media, type "s" Is the device ready and online? > When restoring an archive from multiple media, pax asks for the next media in the same fashion, when the end of the media is reached before the end of the archive.


Standardization, reception and popularity

Despite being standardized in 2001 by IEEE, as of 2010, pax enjoys relatively little popularity or adoption. This is in part because there was not any need for it from the Unix users; it was just the POSIX committee that wants to have a more consistent interface. Pax is also fairly chatty and expects user interactions when things go wrong. pax is required to be present in all conformant systems by Linux Standard Base since version 3.0 (released on July 6, 2005), but so far few
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s ship and install it by default. However, most distributions include pax as a separately installable package. pax has also been present in Windows NT, where it is limited to file archives (tapes not supported). It was later moved to the
Interix Interix was an optional, POSIX-conformant Unix subsystem for Windows NT operating systems. Interix was a component of Windows Services for UNIX, and a superset of the Microsoft POSIX subsystem. Like the POSIX subsystem, Interix was an environment ...
subsystem. It does not support archiving or restoring Win32 ACLs. pax was further present in Windows 2000. Packages handled by the
Installer (macOS) This is a list of macOS built-in apps and system components. Applications App Store The Mac App Store is macOS's digital distribution platform for macOS apps, created and maintained by Apple Inc. based on the iOS version, the platform was an ...
often carry the bulk of their contents in an Archive.pax.gz file that may be read using the system's pax (heirloom) utility.


See also

* List of Unix commands * List of archive formats * Comparison of file archivers


References


Further reading

*


External links


Archiving with Pax
Article in ''FreeBSD basics'' o
ONLamp.com
, b
Dru Lavigne
''(2002-08-22)'' * * *

– Linux Manual – POSIX Programmer's Manual, not actual Linux * * {{Archive formats File archivers Unix archivers and compression-related utilities Unix SUS2008 utilities IBM i Qshell commands 1995 software