fbpx
Wikipedia

pax (command)

pax is an archiving utility available for various operating systems and defined since 1995.[1] 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,[2] and Microsoft Windows NT[3] until Windows 2000.

pax
Original author(s)Mark H. Colburn (sponsored by The USENIX Association)
Developer(s)Various open-source and commercial developers
Initial release1989; 35 years ago (1989)
Written inColburn pax, Muller pax, Heirloom Project pax: C
Operating systemUnix, Unix-like, IBM i, Windows
PlatformCross-platform
TypeCommand
LicenseColburn pax: Prior BSD License
Muller pax: BSD-4-Clause
Heirloom Project pax: zlib
Windows: Proprietary software

In 2001, IEEE defined a new pax format which is basically tar with additional extended attributes.[4][5] 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.

History edit

The first public implementation of pax was written by Mark H. Colburn in 1989. Colburn posted it to comp.sources.unix as Usenix/IEEE POSIX replacement for TAR and CPIO. Manual pages for pax on HP-UX, IRIX, and SCO UNIX attribute pax to Colburn.[6]

As early as POSIX.2 draft 10 from July 1990 covers pax command.[7] 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.[8] The version first appeared in 4.4BSD (1995).[9] Pax command appeared in X/Open issue 4 (Single Unix Specification version 1) in 1995,[1] featuring cpio and ustar archive formats, which were also the only two formats featuring in the 1997 Single Unix Specification.

In 1997, Sun Microsystems 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 pax utility was updated to include this format.[1]

Features edit

Modes edit

pax has four general modes that are invoked by a combination of the -r ("read") and -w ("write") options.

This table summarizes the modal behaviour:

Option Mode Description
(none) "list" shows contents of archive, does not modify or extract anything.
-r "read" reads and extracts contents of an archive
-w "write" creates archives or appends files to an archive
-rw "copy" reads and copies files and directory tree to a specified directory

This model is similar to cpio, which has a similar set of basic operations.

Examples edit

List contents of an archive:

$ pax < archive.tar 

Extract contents of an archive into the current directory:

$ pax -r < archive.tar 

Create an archive of the current directory:

$ printf '.' | pax -w > archive.tar $ pax -w . > archive.tar 

Copy current directory tree to another location:

$ printf '.' | pax -w > archive.tar $ pax -rw target_dir . 

(The target directory must exist beforehand!)

Command invocation edit

By default, pax uses the standard input/output for archive and listing operations. This can be changed with the "tar-style" option -f 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 -d to disable it.

The pax command is a mish-mash of cpio and tar features. Like tar, pax processes directory entries recursively, a feature that can be disabled with -d 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 pax takes the cpio-style behavior of using the standard input for a file list. Finally, pax supports reading/writing to a named archive file using tar's -f FILE option.

For example, if one desires a cpio-style archiving of the current directory, pax can be used with find just like one does using cpio:

$ find . -depth -print | pax -wd > archive.tar 

(This construct is pointless without any filters for find, as it becomes identical to the above example.)

The command for extracting the contents for an archive is the same as cpio:

$ pax -r < archive.tar 

It is possible to invoke these commands in a tar-like syntax as well:

$ pax -wf archive.tar . # write (archive) $ pax -rf archive.tar # read (extract) $ pax -f archive.tar # list $ pax -rw . archive_dir # copy 

Compression edit

Most implementations of pax use the -z (gzip) and -j (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:

$ pax -rzf archive.tar.gz 

As in tar and cpio, pax output can be piped to another compressor/decompressor program. As an example xz is used here:

$ pax -w . | xz > archive.tar.xz 

and listing an xz-compressed archive as the input:

$ xzcat archive.tar.xz | pax 

Format support edit

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 -x 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)[10][11][12] and on FreeBSD.[9] The format is supported by pax command in AIX,[13] Solaris[14] and HP-UX. It is further supported by Python tarfile module,[15] by BSD-licensed libarchive,[16][17] by 7-ZIP[18] and further by GNU tar[19] and FreeBSD tar.[20] The Heirloom Project pax command, developed by Gunnar Ritter in 2003, supports the pax format as well as many extra formats.[21]

Multiple volumes edit

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 edit

Despite being standardized in 2001 by IEEE, as of 2010, pax enjoys relatively little popularity or adoption.[citation needed] 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.[citation needed]

pax is required to be present in all conformant systems by Linux Standard Base since version 3.0 (released on July 6, 2005),[22] but so far few Linux distributions ship and install it by default. However, most distributions include pax as a separately installable package.[23][24][25]

pax has also been present in Windows NT, where it is limited to file archives (tapes not supported).[3] It was later moved to the Interix subsystem. It does not support archiving or restoring Win32 ACLs.[26] pax was further present in Windows 2000.[27]

Packages handled by the Installer (macOS) often carry the bulk of their contents in an Archive.pax.gz file that may be read using the system's pax (heirloom) utility.[28]

See also edit

References edit

  1. ^ a b c The Open Group Base Specifications Issue 6 - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 The IEEE and The Open Group
  2. ^ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM. Retrieved 2020-09-05.
  3. ^ a b Eric Pearce (1997). Windows NT in a nutshell: a desktop quick reference for system administrators. O'Reilly Media, Inc. p. 271. ISBN 978-1-56592-251-8.
  4. ^ . www.gnu.org. Archived from the original on 6 March 2016. Retrieved 22 April 2018.
  5. ^ . www.gnu.org. Archived from the original on 28 December 2019. Retrieved 27 January 2021.
  6. ^ TAR versus Portability – PAX and USTAR, invisible-island.net
  7. ^ IEEE P1003.2 Draft 11.2−September 1991 (pdf) - Shell and Utilities, princeton.edu - Draft 11 indicates changes to pax so it must have been in draft 10
  8. ^ pax, svnweb.freebsd.org
  9. ^ a b pax(1) – FreeBSD General Commands Manual
  10. ^ "MirCPIO — paxmirabilis: tar and even ar!". MirBSD. Retrieved 24 January 2020.
  11. ^ "MirCPIO in Launchpad". launchpad.net. Retrieved 22 April 2018.
  12. ^ "Bug #456405 "pax lack of support for "pax" format fails LSB" : Bugs : MirCPIO". bugs.launchpad.net. Retrieved 22 April 2018.
  13. ^ pax for AIX 7.3, ibm.com
  14. ^ pax for Solaris 11.1, docs.oracle.com
  15. ^ tarfile, python.org
  16. ^ libarchive, libarchive.org
  17. ^ libarchive(3), freebsd.org
  18. ^ HISTORY of the 7-Zip, 7-zip.org
  19. ^ tar manual, gnu.org
  20. ^ tar, freebsd.org
  21. ^ "pax.1". heirloom.sourceforge.net. Retrieved 22 April 2018.
  22. ^ Release notes for LSB 3.0 2011-07-17 at the Wayback Machine note that pax was added: LSB 3.0. Commands and Utilities requires pax, but LSB 2.1.0. Commands and Utilities does not require it
  23. ^ pax, pkgs.org
  24. ^ spax, pkgs.org
  25. ^ heirloom-pax, pkgs.org
  26. ^ . Archived from the original on 2010-08-23.
  27. ^ Virtual x86, copy.sh
  28. ^ . cocoabuilder.com. Archived from the original on 14 February 2015. Retrieved 15 August 2013.

Further reading edit

External links edit

command, this, article, possibly, contains, original, research, please, improve, verifying, claims, made, adding, inline, citations, statements, consisting, only, original, research, should, removed, april, 2021, learn, when, remove, this, message, archiving, . This article possibly contains original research Please improve it by verifying the claims made and adding inline citations Statements consisting only of original research should be removed April 2021 Learn how and when to remove this message pax is an archiving utility available for various operating systems and defined since 1995 1 Rather than sort out the incompatible options that have crept up between a href Tar computing html title Tar computing tar a and a href Cpio html title Cpio cpio a 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 2 and Microsoft Windows NT 3 until Windows 2000 paxOriginal author s Mark H Colburn sponsored by The USENIX Association Developer s Various open source and commercial developersInitial release1989 35 years ago 1989 Written inColburn pax Muller pax Heirloom Project pax COperating systemUnix Unix like IBM i WindowsPlatformCross platformTypeCommandLicenseColburn pax Prior BSD LicenseMuller pax BSD 4 ClauseHeirloom Project pax zlibWindows Proprietary software In 2001 IEEE defined a new pax format which is basically tar with additional extended attributes 4 5 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 Contents 1 History 2 Features 2 1 Modes 2 1 1 Examples 2 2 Command invocation 2 3 Compression 2 4 Format support 2 5 Multiple volumes 3 Standardization reception and popularity 4 See also 5 References 6 Further reading 7 External linksHistory editThe first public implementation of pax was written by Mark H Colburn in 1989 Colburn posted it to comp sources unix as Usenix IEEE POSIX replacement for TAR and CPIO Manual pages for pax on HP UX IRIX and SCO UNIX attribute pax to Colburn 6 As early as POSIX 2 draft 10 from July 1990 covers pax command 7 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 8 The version first appeared in 4 4BSD 1995 9 Pax command appeared in X Open issue 4 Single Unix Specification version 1 in 1995 1 featuring cpio and ustar archive formats which were also the only two formats featuring in the 1997 Single Unix Specification In 1997 Sun Microsystems 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 pax utility was updated to include this format 1 Features editModes edit pax has four general modes that are invoked by a combination of the r read and w write options This table summarizes the modal behaviour Option Mode Description none list shows contents of archive does not modify or extract anything r read reads and extracts contents of an archive w write creates archives or appends files to an archive rw copy reads and copies files and directory tree to a specified directory This model is similar to cpio which has a similar set of basic operations Examples edit List contents of an archive pax lt archive tar Extract contents of an archive into the current directory pax r lt archive tar Create an archive of the current directory printf pax w gt archive tar pax w gt archive tar Copy current directory tree to another location printf pax w gt archive tar pax rw target dir The target directory must exist beforehand Command invocation edit By default pax uses the standard input output for archive and listing operations This can be changed with the tar style option f 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 d to disable it The pax command is a mish mash of cpio and tar features Like tar pax processes directory entries recursively a feature that can be disabled with d 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 pax takes the cpio style behavior of using the standard input for a file list Finally pax supports reading writing to a named archive file using tar s f FILE option For example if one desires a cpio style archiving of the current directory pax can be used with find just like one does using cpio find depth print pax wd gt archive tar This construct is pointless without any filters for find as it becomes identical to the above example The command for extracting the contents for an archive is the same as cpio pax r lt archive tar It is possible to invoke these commands in a tar like syntax as well pax wf archive tar write archive pax rf archive tar read extract pax f archive tar list pax rw archive dir copy Compression edit Most implementations of pax use the z gzip and j 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 pax rzf archive tar gz As in tar and cpio pax output can be piped to another compressor decompressor program As an example xz is used here pax w xz gt archive tar xz and listing an xz compressed archive as the input xzcat archive tar xz pax Format support edit 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 x 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 10 11 12 and on FreeBSD 9 The format is supported by pax command in AIX 13 Solaris 14 and HP UX It is further supported by Python tarfile module 15 by BSD licensed libarchive 16 17 by 7 ZIP 18 and further by GNU tar 19 and FreeBSD tar 20 The Heirloom Project pax command developed by Gunnar Ritter in 2003 supports the pax format as well as many extra formats 21 Multiple volumes edit 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 gt 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 editDespite being standardized in 2001 by IEEE as of 2010 pax enjoys relatively little popularity or adoption citation needed 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 citation needed pax is required to be present in all conformant systems by Linux Standard Base since version 3 0 released on July 6 2005 22 but so far few Linux distributions ship and install it by default However most distributions include pax as a separately installable package 23 24 25 pax has also been present in Windows NT where it is limited to file archives tapes not supported 3 It was later moved to the Interix subsystem It does not support archiving or restoring Win32 ACLs 26 pax was further present in Windows 2000 27 Packages handled by the Installer macOS often carry the bulk of their contents in an Archive pax gz file that may be read using the system s pax heirloom utility 28 See also editList of Unix commands List of archive formats Comparison of file archiversReferences edit a b c The Open Group Base Specifications Issue 6 POSIX 1 2001 IEEE Std 1003 1 Copyright c 2001 2004 The IEEE and The Open Group IBM IBM System i Version 7 2 Programming Qshell PDF IBM Retrieved 2020 09 05 a b Eric Pearce 1997 Windows NT in a nutshell a desktop quick reference for system administrators O Reilly Media Inc p 271 ISBN 978 1 56592 251 8 GNU tar 8 1 Using Less Space through Compression www gnu org Archived from the original on 6 March 2016 Retrieved 22 April 2018 GNU tar 4 3 2 Extended File Attributes www gnu org Archived from the original on 28 December 2019 Retrieved 27 January 2021 TAR versus Portability PAX and USTAR invisible island net IEEE P1003 2 Draft 11 2 September 1991 pdf Shell and Utilities princeton edu Draft 11 indicates changes to pax so it must have been in draft 10 pax svnweb freebsd org a b pax 1 FreeBSD General Commands Manual MirCPIO paxmirabilis tar and even ar MirBSD Retrieved 24 January 2020 MirCPIO in Launchpad launchpad net Retrieved 22 April 2018 Bug 456405 pax lack of support for pax format fails LSB Bugs MirCPIO bugs launchpad net Retrieved 22 April 2018 pax for AIX 7 3 ibm com pax for Solaris 11 1 docs oracle com tarfile python org libarchive libarchive org libarchive 3 freebsd org HISTORY of the 7 Zip 7 zip org tar manual gnu org tar freebsd org pax 1 heirloom sourceforge net Retrieved 22 April 2018 Release notes for LSB 3 0 Archived 2011 07 17 at the Wayback Machine note that pax was added LSB 3 0 Commands and Utilities requires pax but LSB 2 1 0 Commands and Utilities does not require it pax pkgs org spax pkgs org heirloom pax pkgs org System Administration of Backups Tar and Pax in Interix Archived from the original on 2010 08 23 Virtual x86 copy sh Extracting files from a pax gz package cocoabuilder com Archived from the original on 14 February 2015 Retrieved 15 August 2013 Further reading editFrisch AEleen 2001 Windows 2000 Commands Pocket Reference O Reilly ISBN 978 0 596 00148 3 External links edit nbsp Wikibooks has a book on the topic of Guide to Windows Commands nbsp The Wikibook Guide to Unix has a page on the topic of Commands Archiving with Pax Archived 2009 10 04 at the Wayback Machine Article in FreeBSD basics on ONLamp com Archived 2009 09 17 at the Wayback Machine by Dru Lavigne Archived 2008 10 10 at the Wayback Machine 2002 08 22 pax Shell and Utilities Reference The Single UNIX Specification Version 4 from The Open Group pax 1 FreeBSD General Commands Manual pax 1 OpenBSD General Commands Manual pax 1p Linux Manual POSIX Programmer s Manual not actual Linux pax 1 Debian General Commands Manual pax 1 Solaris 11 4 User Commands Reference Manual Retrieved from https en wikipedia org w index php title Pax command amp oldid 1218414587, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.