Extracts, writes, and lists members of archive files; copies files and directory hierarchies.
pax [ -c ] [ -d ] [ -n ] [ -v ] [ -H | -L ] [ -f Archive ] [ -s ReplacementString ... ] [ -x Format ] [ -o Options ] [ Pattern ... ]
pax -r [ -c ] [ -d ] [ -i ] [ -k ] [ -n ] [ -u ] [ -v ] [ -H | -L ] [ -f Archive ] [ -o Options ] [ -p String ... ] [ -s ReplacementString ... ] [ -x Format ] [ Pattern ... ]
pax -w [ -d ] [ -i ] [ -t ] [ -u ] [ -v ] [ -X ] [ -H | -L ] [ -b Blocking ] [ [ -a ] -f Archive ] [ -o Options ] [ -s ReplacementString ... ] [ -x Format ] [ File ... ]
pax -r -w [ -d ] [ -i ] [ -k ] [ -l ] [ -n ] [ -t ] [ -u ] [ -v ] [ -X ] [ -H | -L ] [ -p String ... ] [ -o Options ] [ -s ReplacementString ... ] [ -x Format ] [ File ... ] Directory
The pax command extracts and writes member files of archive files; writes lists of the member files of archives; and copies directory hierarchies. The -r and -w flags specify the type of archive operation.
Note: pax actively sparses files that are being restored. If a file has block aligned and sized areas that are NULL populated, pax does not cause physical space for those filesystem blocks to be allocated. The size in bytes of the file remains the same, but the actual space taken within the filesystem is only for the non-NULL areas.
When neither the -r nor the -w flags are specified, the pax command lists all the member files of the archive file read from standard input. If the Pattern parameter is specified, only the member files with pathnames that match the specified patterns are written to standard output. If a named file is a directory, the file hierarchy contained in the directory is also written. When neither the -r or -w flags are specified, the -c, -d, -f, -n, -s, and -v flags, and the Pattern parameter may be specified.
When the -r flag is specified, but the -w flag is not, the pax command extracts all the member files of the archive files read from standard input. If the Pattern parameter is specified, only the member files with pathnames that match the specified patterns are written to standard output. If a named file is a directory, the file hierarchy contained in the directory is also extracted. The -r flag can be specified with the -c, -d, -f, -i, -k, -n, -s, -u, and -v flags, and with the Pattern parameter.
The access and modification times of the extracted files are the same as the archived files. The file modes of the extracted files are the same as when they were archived, unless they are affected by the user's default file creation mode (umask). The S_ISUID and S_ISGID bits of the extracted files are cleared.
If intermediate directories are necessary to extract an archive member, the pax command creates the directories with access permissions set as the bitwise inclusive OR of the values of the S_IRWXU, S_IRWXG, and S_IRWXO masks.
If the selected archive format supports the specification of linked files, it is an error if these files cannot be linked when the archive is extracted.
When the -w flag is specified and the -r flag is not, the pax command writes the contents of the files specified by the File parameter to standard output in an archive format. If no File parameter is specified, a list of files to copy, one per line, is read from the standard input. When the File parameter specifies a directory, all of the files contained in the directory are written. The -w flag can be specified with the -a, -b, -d, -f, -i, -o, -s, -t, -u, -v, -x, and -X flags and with File parameters.
When specifying pathnames that are greater than 100 characters for the United States Tape Archiver (USTAR) format, remember that the pathname is composed of a prefix buffer, a / (slash), and a name buffer. The prefix buffer can be a maximum of 155 characters and the name buffer can hold a maximum of 100 characters. If the pathname cannot be split into these two parts by a slash, it cannot be archived. This limitation is due to the structure of tar archive headers, and must be maintained for compliance with standards and backwards compatibility.
When both the -r and -w flags are specified, the pax command copies the files specified by the File parameters to the destination directory specified by the Directory parameter. If no files are specified, a list of files to copy, one per line, is read from the standard input. If a specified file is a directory, the file hierarchy contained in the directory is also copied. The -r and -w flags can be specified with the -d, -i, -k, -l, -o, -p, -n, -s, -t, -u, -v, and -X flags and with File parameters. The Directory parameter must be specified.
Copied files are the same as if they were written to an archive file and subsequently extracted, except that there may be hard links between the original and the copied files.
Use the -o flag to modify the archive algorithm according to keyword-value pairs. The keyword-value pairs must adhere to a correct archive format. A list of valid keywords and their behavior is given in the subsequent description of the -o flag.
In read or copy modes, if intermediate directories are necessary to extract an archive member, pax performs actions equivalent to the mkdir() subroutine with the intermediate directory used as the path argument and the value S_IRWXU as the mode argument.
If any specified pattern or file operands are not matched by at least one file or archive member, pax writes a diagnostic message to standard error for each one that did not match and exits with an error status.
In traversing directories, pax will detect infinite loops; i.e., entering a previously visited directory that is an ancestor of the last file visited. Upon detection of an infinite loop, pax writes a diagnostic message to standard error and terminates.
When pax is in read mode or list mode, using the -x pax archive format, and a file name, link name, owner name, or any other field in an extended header record cannot be translated from the pax UTF8 codeset format to the current codeset and locale, pax writes a diagnostic message to standard error, processes the file as described for the -o invalid= option, and then processes the next file in the archive.
-o Options (Continued) |
exthdr.name=string (Applicable only to the -x pax format.) This keyword allows user control over the name written into the ustar header blocks for the extended header records. The name is the contents of string after the following character substitutions have been made:
Any other % characters in string produce undefined results. If this keyword-value pair is not specified in the -o Options list, the default value of the name is:
%d/PaxHeaders/%f globexthdr.name=string (Applicable only to the -x pax format.) When used in write or copy mode with the appropriate options, pax creates global extended header records with ustar header blocks that will be treated as regular files by previous versions of pax. This keyword allows user control over the name that is written into the ustar header blocks for global extended header records. The name is the contents of string after the following character substitutions have been made:
Any other % characters in string produce undefined results. If this keyword-value pair is not specified in the -o Options list, the default value of the name is $TMPDIR/GlobalHead.%n where $TMPDIR is either the value of the TMPDIR environment variable or /tmp if TMPDIR is unset. invalid=action (Applicable only to the -x pax format.) This keyword allows user control over the action pax takes upon encountering values in an extended header record that:
|
-o Options (Continued) |
pax recognizes these invalid values:
These mutually exclusive values of the action argument are supported:
linkdata (Applicable only to the -x pax format.) In write mode, pax writes the contents of a file to the archive,
even when that file is merely a hard link to a file whose contents have
already been written to the archive.
|
-o Options (Continued) |
listopt=format (Applicable to all file formats.) This keyword specifies the output format of the table of contents produced when the -v option is specified in list mode. To avoid ambiguity, this keyword-value pair should be used as the only or final keyword-value pair following the -o flag; all characters in the remainder of the option-argument are considered part of the format string. If multiple -o listopt=format options are specified, the format strings are considered to be a single, concatenated string, evaluated in command-line order. Please refer to the List-Mode Format Specifications section for more information. times (Applicable only to the -x pax format.) When used in write or copy mode, pax includes atime, ctime, and
mtime extended header records for each file.
|
(Applicable only to the -x pax format.)
If the -x pax format is specified, any of the keywords and values defined in the list below can be used as parameters to the -o flag, in either of two modes:
keyword=value
When used in write or copy mode, these keyword-value pairs are written into the global extended header records of the new archive. When used in read or list mode, these keyword-value pairs act as if they were present in the global extended header records of the archive being read. In both cases, the given value is applied to all files that do not have a value assigned in their individual extended header records for the specified keyword.
keyword:=value
When used in write or copy mode, these keyword-value pairs are written into the extended header records of each file in the new archive. When used in read or list mode, these keyword-value pairs act as if they were present in the extended header records of each file in the archive being read. In both cases, the given value overrides any value for the specified keyword found in global or file-specific extended header records.
atime
The file access time for the following file(s), equivalent to the value of the st_atime member of the stat structure for a file.
charset
The name of the character set used to encode the data in the following
file(s). The entries in this table are defined to refer to known
standards:
value | Formal Standard |
"ISO-IR 646 1990" | ISO/IEC 646 IRV |
"ISO-IR 8859 1 1987" | ISO 8859-1 |
"ISO-IR 8859 2 1987" | ISO 8859-2 |
"ISO-IR 10646 1993" | ISO/IEC 10646 |
"ISO-IR 10646 1993 UTF8" | ISO/IEC 10646, UTF8 encoding |
"BINARY" | None |
The encoding is included in an extended header for information only; when pax is used as described, it does not translate the file data into any other encoding. The BINARY entry indicates binary data that is not encoded.
comment
A series of characters used as a comment. All characters in the value field are ignored by pax.
ctime
The file creation time for the following file(s), equivalent to the value of the st_ctime member of the stat structure for a file.
gid
The group ID of the group that owns the file, expressed as a decimal number using digits from ISO/IEC 646. This record overrides the gid field in the following header block(s). When used in write or copy mode, pax includes a gid extended header record for each file whose group ID is greater than 99,999,999.
gname
The group of the following file(s), formatted as a group name in the group database. This record overrides the gid and gname fields in the following header blocks, and any gid extended header record. When used in read, copy, or list mode, pax translates the name from the UTF8 encoding in the header record to the character set appropriate for the group database on the receiving system. If any of the UTF8 characters cannot be translated, and if the -o invalid=UTF8 option is not specified, the results are undefined. When used in write or copy mode, pax includes a gname extended header record for each file whose group name cannot be represented entirely with the letters and digits of the portable character set.
linkpath
The pathname of a link being created to another file, of any type, previously archived. This record overrides the linkname field in the following ustar header block(s).
The following ustar header block determines the type of link created, whether hard or symbolic. In the latter case, the linkpath value is the contents of the symbolic link. pax translates the name of the link (contents of the symbolic link) from the UTF8 encoding to the character set appropriate for the local file system.
When used in write or copy mode, pax includes a linkpath extended header record for each link whose pathname cannot be represented entirely with the members of the portable character set other than NULL.
mtime
The file modification time of the following file(s), equivalent to the value of the st_mtime member of the stat structure for a file. This record overrides the mtime field in the following header block(s). The modification time is restored if the process has the appropriate privilege to do so.
path
The pathname of the following file(s). This record overrides the name and prefix fields in the following header block(s). pax translates the pathname of the file from the UTF8 encoding to the character set appropriate for the local file system. When used in write or copy mode, pax includes a path extended header record for each file whose pathname cannot be represented entirely with the members of the portable character set other than NULL.
realtime.any
The keywords prefixed by realtime are reserved for future POSIX realtime standardization. pax recognizes but silently ignores them.
security.any
The keywords prefixed by security are reserved for future POSIX security standardization. pax recognizes but silently ignores them.
size
The size of the file in octets, expressed as a decimal number using digits from ISO/IEC 646. This record overrides the size field in the following header block(s). When used in write or copy mode, pax includes a size of extended header record for each file with a size value greater than 999,999,999,999.
uid
The user ID of the user that owns the file, expressed as a decimal number using digits from ISO/IEC 646.. This record overrides the uid field in the following header block(s). When used in write or copy mode, pax includes a uid extended header record for each file whose owner ID is greater than 99,999,999.
uname
The owner of the following file(s), formatted as a user name in the user database. This record overrides the uid and uname fields in the following header block(s), and any uid extended header record. When used in read, copy, or list mode, pax translates the name from the UTF8 encoding in the header record to the character set appropriate for the user database on the receiving system. If any of the UTF8 characters cannot be translated, and if the -o invalid=UTF8 option is not specified, the results are undefined. When used in write or copy mode, pax includes a uname extended header record for each file whose user name cannot be represented entirely with the letters and digits of the portable character set.
If the value field is zero length, it deletes any header block field, previously entered extended header value, or global extended header value of the same name.
If a keyword in an extended header record (or in a -o option-argument) overrides or deletes a corresponding field in the ustar header block, pax ignores the contents of that header block field.
(Applicable only to the -x pax format.)
This section describes the precedence in which the various header records and fields and command-line options are selected to apply to a file in the archive. When pax is used in read or list modes, it determines a file attribute in this sequence:
The flags that operate on the names of files or archive members (-c, -i, -n, -s, -u, and -v) interact as follows:
In list mode with the -o listopt=format option, the format argument is applied for each selected file. pax appends a newline character to the listopt output for each selected file. The format argument is used as the format string described in printf(), with the following exceptions:
For example, the sequence %(charset)s is the string value of the name of the character set in the extended header.
The result of the keyword conversion argument is the value from the applicable header field or extended header, without any trailing NULLs.
All keyword-values used as conversion arguments are translated from the UTF8 encoding to the character set appropriate for the local file system, user database, etc., as applicable.
keyword,keyword...
The values for all the non-null keywords are concatenated together, each separated by a /. The default is path if the keyword path is defined; otherwise, the default is prefix,name.
"%s -> %s", value_of_keyword, contents_of_link
Otherwise, the %L conversion character is equivalent to %F.
This command returns the
following exit values:
0 | Successful completion. |
>0 | An error occurred. |
mkdir newdir
pax -rw olddir newdir
pax -wf /dev/rmt0
pax -wvf/dev/rfd0 -s /xxx/XXX/p xxx
pax -wvf/dev/rfd0 -s/x/X/gp xxx
dd if=/dev/hd6 bs=36b count=480 | pax -wf /dev/rfd0 -o datastream=_filename_,datastr_size=_size_
/usr/bin/pax | Contains the pax command. |
The ed command, cpio command, tar command, and rmt command.
The Files Overview in AIX 5L Version 5.1 System User's Guide: Operating System and Devices.