pax(1)
NAME
pax - portable archive interchange
SYNOPSIS
pax [-cdnv] [-f archive] [-s replstr] ... [pattern...]
pax -r [-cdiknuv] [-f archive] [-o options...] [-p string]
... [-s replstr] ... [pattern...]
pax -w [-dituvX@] [-b blocksize] [-a] [-f archive] [-
o options] ... [-s replstr] ... [-x format] [file...]
pax -r -w [-diklntuvX@] [-p string] ... [-s replstr] ...
[file...] directory
DESCRIPTION
The pax command reads, writes and writes lists of the
members of archive files and copy directory hierarchies. A
variety of archive formats are supported. See the -x format
option.
Modes of Operations
The action to be taken depends on the presence of the -r and
-w options. The four combinations of -r and -w are referred
to as the four modes of operation: list, read, write, and
copy modes, corresponding respectively to the four forms
shown in the SYNOPSIS.
list In list mode (when neither -r nor -w are specified),
pax writes the names of the members of the archive
file read from the standard input, with path names
matching the specified patterns, to standard output.
If a named file has extended attributes, the extended
attributes are also listed. If a named file is of type
directory, the file hierarchy rooted at that file will
be written out as well.
read In read mode (when -r is specified, but -w is not),
pax extracts the members of the archive file read from
the standard input, with path names matching the
specified patterns. If an extracted file is of type
directory, the file hierarchy rooted at that file will
be extracted as well. The extracted files is created
relative to the current file hierarchy.
The ownership, access and modification times, and file
mode of the restored files are discussed under the -p
option.
write In write mode (when -w is specified, but -r is not),
pax writes the contents of the file operands to the
standard output in an archive format. If no file
operands are specified, a list of files to copy, one
per line, will be read from the standard input. A file
of type directory will include all of the files in the
file hierarchy rooted at the file.
copy In copy mode (when both -r and -w are specified), pax
copies the file operands to the destination directory.
If no file operands are specified, a list of files to
copy, one per line, will be read from the standard
input. A file of type directory will include all of
the files in the file hierarchy rooted at the file.
The effect of the copy is as if the copied files were
written to an archive file and then subsequently
extracted, except that there may be hard links between
the original and the copied files. If the destination
directory is a subdirectory of one of the files to be
copied, the results are unspecified. It is an error if
directory does not exist, is not writable by the user,
or is not a directory.
In read or copy modes, if intermediate directories are
necessary to extract an archive member, pax will perform
actions equivalent to the mkdir(2) function, called with the
following arguments:
o the intermediate directory used as the path argument
o the octal value of 777 or rwx (read, write, and exe-
cute permissions) as the mode argument (see chmod(1)).
If any specified pattern or file operands are not matched by
at least one file or archive member, pax will write a diag-
nostic message to standard error for each one that did not
match and exit with a non-zero exit status.
The supported archive formats are automatically detected on
input. The default output archive format is tar(1).
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. Any of the various names in
the archive that represent a file can be used to select the
file for extraction.
OPTIONS
The following options are supported:
-r Reads an archive file from standard input.
-w Writes files to the standard output in the specified
archive format.
-a Appends files to the end of the archive. This option
will not work for some archive devices, such as 1/4-
inch streaming tapes and 8mm tapes.
-b blocksize
Blocks the output at a positive decimal integer number
of bytes per write to the archive file. Devices and
archive formats may impose restrictions on blocking.
Blocking is automatically determined on input. Port-
able applications must not specify a blocksize value
larger than 32256. Default blocking when creating
archives depends on the archive format. See the -x
option below.
-c Matches all file or archive members except those
specified by the pattern or file operands.
-d Causes files of type directory being copied or
archived or archive members of type directory being
extracted to match only the file or archive member
itself and not the file hierarchy rooted at the file.
-f archive
Specifies the path name of the input or output
archive, overriding the default standard input (in
list or read modes) or standard output (write mode).
-i Interactively renames files or archive members. For
each archive member matching a pattern operand or file
matching a file operand, a prompt will be written to
the file /dev/tty. The prompt will contain the name of
the file or archive member. A line will then be read
from /dev/tty. If this line is blank, the file or
archive member will be skipped. If this line consists
of a single period, the file or archive member will be
processed with no modification to its name. Otherwise,
its name will be replaced with the contents of the
line. The pax command will immediately exit with a
non-zero exit status if end-of-file is encountered
when reading a response or if /dev/tty cannot be
opened for reading and writing.
-k Prevents the overwriting of existing files.
-l Links files. In copy mode, hard links will be made
between the source and destination file hierarchies
whenever possible.
-n Selects the first archive member that matches each
pattern operand. No more than one archive member will
be matched for each pattern, although members of type
directory will still match the file hierarchy rooted
at that file.
-o options
Reserved for special format-specific options.
-p string
Specifies one or more file characteristic options
(privileges). The string option-argument must be a
string specifying file characteristics to be retained
or discarded on extraction. The string consists of the
specification characters a, e, m, o, and p. Multiple
characteristics can be concatenated within the same
string and multiple -p options can be specified. The
meaning of the specification characters are as fol-
lows:
a Does not preserve file access times.
e Preserves the user ID, group ID, file mode bits,
access time, and modification time.
m Does not preserve file modification times.
o Preserves the user ID and group ID.
p Preserves the file mode bits. Other, implementation-
dependent file-mode attributes may be preserved.
In the preceding list, ``preserve'' indicates that an attri-
bute stored in the archive will be given to the extracted
file, subject to the permissions of the invoking process.
Otherwise, the attribute will be determined as part of the
normal file creation action.
If neither the e nor the o specification character is speci-
fied, or the user ID and group ID are not preserved for any
reason, pax will not set the setuid and setgid bits of the
file mode.
If the preservation of any of these items fails for any rea-
son, pax will write a diagnostic message to standard error.
Failure to preserve these items will affect the final exit
status, but will not cause the extracted file to be deleted.
If file-characteristic letters in any of the string option-
arguments are duplicated or conflict with each other, the
ones given last will take precedence. For example, if -p eme
is specified, file modification times will be preserved.
-s replstr
Modifies file or archive member names named by pattern
or file operands according to the substitution expres-
sion replstr, which is based on the ed(1) s (substi-
tution) command, using the regular expression syntax
on the regex(5) manual page. The concepts of
``address'' and ``line'' are meaningless in the con-
text of the pax command, and must not be supplied. The
format is:
-s / old/new/ [ gp ]
where, as in ed, old is a basic regular expression and
new can contain an ampersand (&) or a \n backrefer-
ence, where n is a digit. The old string also is per-
mitted to contain newline characters.
Any non-null character can be used as a delimiter ( /
shown here). Multiple -s expressions can be specified;
the expressions will be applied in the order speci-
fied, terminating with the first successful substitu-
tion. The optional trailing g is as defined in the ed
command. The optional trailing p causes successful
substitutions to be written to standard error. File or
archive member names that substitute to the empty
string are ignored when reading and writing archives.
-t Causes the access times of the archived files to be
the same as they were before being read by pax.
-u Ignores files that are older (having a less recent
file modification time) than a pre-existing file or
archive member with the same name.
read mode
An archive member with the same name as a file
in the file system will be extracted if the
archive member is newer than the file.
write mode
An archive file member with the same name as a
file in the file system will be superseded if
the file is newer than the archive member.
copy mode
The file in the destination hierarchy will be
replaced by the file in the source hierarchy or
by a link to the file in the source hierarchy if
the file in the source hierarchy is newer.
-v In list mode, produces a verbose table of contents
(see Standard Output). Otherwise, writes archive
member path names and extended attributes to standard
error (see Standard Error).
-x format
Specifies the output archive format. The pax command
recognizes the following formats:
cpio The extended cpio(1) interchange format. See the
IEEE 1003.1(1990) specifications. The default
blocksize for this format for character special
archive files is 5120. Implementations support
all blocksize values less than or equal to 32256
that are multiples of 512.
This archive format allows files with UIDs and
GIDs up to 262143 to be stored in the archive.
Files with UIDs and GIDs greater than this value
will be archived with the UID and GID of 60001.
ustar The extended tar(1) interchange format. See the
IEEE 1003.1(1990) specifications. The default
blocksize for this format for character special
archive files is 10240. Implementations support
all blocksize values less than or equal to 32256
that are multiples of 512.
Any attempt to append to an archive file in a
format different from the existing archive for-
mat will cause pax to exit immediately with a
non-zero exit status.
This archive format allows files with UIDs and
GIDs up to 2097151 to be stored in the archive.
Files with UIDs and GIDs greater than this value
will be archived with the UID and GID of
60001.
xustar
Similar to ustar. Will also allow archiving and
extracting files whose size is greater than 8GB;
whose UID, GID, devmajor, or devminor values are
greater than 2097151; whose path (including
filename) is greater than 255 characters; or
whose linkname is greater than 100 characters.
This option should not be used if the archive is
to be extracted by an archiver that cannot han-
dle the larger values.
-X When traversing the file hierarchy specified by a path
name, pax will not descend into directories that have
a different device ID (st_dev, see stat(2)).
-@ When traversing the file hierarchy specified by a path
name, pax will descend into the attribute directory
for any file with extended attributes. Extended attri-
butes go into the archive as special files. When this
flag is used during file extraction, any extended
attributes associated with a file being extracted are
also extracted. Extended attribute files can only be
extracted from an archive as part of a normal file
extract. Attempts to explicitly extract attribute
records are ignored.
The options that operate on the names of files or archive
members (-c, -i, -n, -s, -u and -v) interact as follows. In
read mode, the archive members are selected based on the
user-specified pattern operands as modified by the -c, -n
and -u options. Then, any -s and -i options will modify, in
that order, the names of the selected files. The -v option
will write names resulting from these modifications.
In write mode, the files are selected based on the user-
specified path names as modified by the -n and -u options.
Then, any -s and -i options will, in that order, modify the
names of these selected files. The -v option will write
names resulting from these modifications.
If both the -u and -n options are specified, pax does not
consider a file selected unless it is newer than the file to
which it is compared.
OPERANDS
The following operands are supported:
directory
The destination directory path name for copy mode.
file A path name of a file to be copied or archived.
pattern
A pattern matching one or more path names of archive
members. A pattern must conform to the pattern match-
ing notation found on the fnmatch(5) manual page. The
default, if no pattern is specified, is to select all
members in the archive.
OUTPUT
Standard Output
In write mode, if -f is not specified, the standard output
will be the archive formatted according to cpio or ustar.
(See -x format.)
In list mode, the table of contents of the selected archive
members will be written to standard output using the follow-
ing format:
"%s\n" pathname
If the -v option is specified in list mode, the table of
contents of the selected archive members will be written to
standard output using the following formats:
For path names representing hard links to previous members
of the archive:
"%s==%s\n" ls -l listing, linkname
For all other path names:
pathname "%s\n" ls -l listing
where ls -l listing is the format specified by the ls com-
mand with the -l option. When writing path names in this
format, it is unspecified what is written for fields for
which the underlying archive format does not have the
correct information, although the correct number of blank-
character-separated fields will be written.
In list mode, standard output will not be buffered more than
a line at a time.
Standard Error
If -v is specified in read, write or copy modes, pax will
write the path names it processes to the standard error out-
put using the following format:
"%s\n" pathname
These path names will be written as soon as processing is
begun on the file or archive member, and will be flushed to
standard error. The trailing newline character, which will
not be buffered, will be written when the file has been read
or written.
If the -s option is specified, and the replacement string
has a trailing p, substitutions will be written to standard
error in the following format:
"%s>>%s\n" original pathname, new pathname
In all operating modes of pax, optional messages of unspeci-
fied format concerning the input archive format and volume
number, the number of files, blocks, volumes and media parts
as well as other diagnostic messages may be written to
standard error.
In all formats, for both standard output and standard error,
it is unspecified how non-printable characters in path names
or linknames are written.
ERRORS
If pax cannot create a file or a link when reading an
archive or cannot find a file when writing an archive, or
cannot preserve the user ID, group ID, or file mode when the
-p option is specified, a diagnostic message will be written
to standard error and a non-zero exit status will be
returned, but processing will continue. In the case where
pax cannot create a link to a file, pax will not, by
default, create a second copy of the file.
If the extraction of a file from an archive is prematurely
terminated by a signal or error, pax may have only partially
extracted the file or (if the -n option was not specified)
may have extracted a file of the same name as that specified
by the user, but which is not the file the user wanted.
Additionally, the file modes of extracted directories may
have additional bits from the read, write, execute mask set
as well as incorrect modification and access times.
USAGE
The -p (privileges) option was invented to reconcile differ-
ences between historical tar(1) and cpio(1) implementations.
In particular, the two utilities use -m in diametrically
opposed ways. The -p option also provides a consistent means
of extending the ways in which future file attributes can be
addressed, such as for enhanced security systems or high-
performance files. Although it may seem complex, there are
really two modes that will be most commonly used:
-p e ``Preserve everything''. This would be used by the
historical superuser, someone with all the appropriate
privileges, to preserve all aspects of the files as
they are recorded in the archive. The e flag is the
sum of o and p, and other implementation-dependent
attributes.
-p p ``Preserve'' the file mode bits. This would be used by
the user with regular privileges who wished to
preserve aspects of the file other than the ownership.
The file times are preserved by default, but two other
flags are offered to disable these and use the time of
extraction.
See largefile(5) for the description of the behavior of pax
when encountering files greater than or equal to 2 Gbyte ( 2
**31 bytes).
EXAMPLES
Example 1: Copying the contents of the current directory
The following command:
example% pax -w -f /dev/rmt/1m .
copies the contents of the current directory to tape drive
1, medium density. (This assumes historical System V device
naming procedures. The historical BSD device name would be
/dev/rmt9).
Example 2: Copying the directory hierarchy
The following commands:
example% mkdir newdir
example% pax -rw olddir newdir
copy the olddir directory hierarchy to newdir.
Example 3: Reading an archive extracted relative to the
current directory
The following command:
example% pax -r -s ',^//*usr//*,,' -f a.pax
reads the archive a.pax, with all files rooted in /usr in
the archive extracted relative to the current directory.
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment
variables that affect the execution of pax: LANG, LC_ALL,
LC_CTYPE, LC_MESSAGES, LC_TIME, and NLSPATH.
LC_COLLATE
Determine the locale for the behaviour of ranges,
equivalence classes, and multi-character collating
elements used in the pattern matching expressions for
the pattern operand, the basic regular expression for
the -s option, and the extended regular expression
defined for the yesexpr locale keyword in the
LC_MESSAGES category.
EXIT STATUS
The following exit values are returned:
0 All files were processed successfully.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | SUNWcsu |
|_____________________________|_____________________________|
| Interface Stability | Standard |
|_____________________________|_____________________________|
SEE ALSO
chmod(1), cpio(1), ed(1), tar(1), mkdir(2), stat(2), attri-
butes(5), environ(5), fnmatch(5), fsattr(5), largefile(5),
regex(5), standards(5)
Man(1) output converted with
man2html