irix - pax (1)
NAME
pax - portable archive exchange
SYNOPSIS
pax [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]
pax -r [-cimnopuvy] [-f archive] [-s replstr] [-t device] [pattern...]
pax -w [-adimuvy] [-b blocking] [-f archive] [-s replstr] [-t device] [-x
format] [pathname...]
pax -rw [-ilmopuvy] [-s replstr] [pathname...] directory
DESCRIPTION
Pax reads and writes archive files which conform to the
Archive/Interchange File Format specified in IEEE Std. 1003.1-1988. Pax
can also read, but not write, a number of other file formats in addition
to those specified in the Archive/Interchange File Format description.
Support for these traditional file formats, such as V7 tar and System V
binary cpio format archives, is provided for backward compatibility and
to maximize portability.
Pax will also support traditional cpio and System V tar interfaces if
invoked with the name "cpio" or "tar" respectively. See the cpio(1) or
tar(1) manual pages for more details.
Combinations of the -r and -w command line arguments specify whether pax
will read, write or list the contents of the specified archive, or move
the specified files to another directory.
The command line arguments are:
-w writes the files and directories specified by pathname operands to
the standard output together with the pathname and status
information prescribed by the archive format used. A directory
pathname operand refers to the files and (recursively)
subdirectories of that directory. If no pathname operands are
given, then the standard input is read to get a list of pathnames to
copy, one pathname per line. In this case, only those pathnames
appearing on the standard input are copied.
-r Pax reads an archive file from the standard input. Only files with
names that match any of the pattern operands are selected for
extraction. The selected files are conditionally created and copied
relative to the current directory tree, subject to the options
described below. By default, the owner and group of selected files
will be that of the invoking process, and the permissions and
modification times will be the sames as those in the archive.
The supported archive formats are automatically detected on input.
The default output format is ustar, but may be overridden by the -x
-rw Pax reads the files and directories named in the pathname operands
and copies them to the destination directory. A directory pathname
operand refers to the files and (recursively) subdirectories of that
directory. If no pathname operands are given, the standard input is
read to get a list of pathnames to copy, one pathname per line. In
this case, only those pathnames appearing on the standard input are
copied. The directory named by the directory operand must exist and
have the proper permissions before the copy can occur.
If neither the -r or -w options are given, then pax will list the
contents of the specified archive. In this mode, pax lists normal files
one per line, hard link pathnames as
pathname == linkname
and symbolic link pathnames (if supported by the implementation) as
pathname -> linkname
where pathname is the name of the file being extracted, and linkname is
the name of a file which appeared earlier in the archive.
If the -v option is specified, then pax list normal pathnames in the same
format used by the ls utility with the -l option. Hard links are shown
as
<ls -l listing> == linkname
and symbolic links (if supported) are shown as
<ls -l listing> -> linkname
Pax is capable of reading and writing archives which span multiple
physical volumes. Upon detecting an end of medium on an archive which is
not yet completed, pax will prompt the user for the next volume of the
archive and will allow the user to specify the location of the next
volume.
Options
The following options are available:
-a The files specified by pathname are appended to the specified
archive.
-b blocking
Block the output at blocking bytes per write to the archive
file. A k suffix multiplies blocking by 1024, a b suffix
multiplies blocking by 512 and a m suffix multiplies blocking
by 1048576 (1 megabyte). For machines with 16-bit int's
(VAXen, XENIX-286, etc.), the maximum buffer size is 32k-1. If
and is ignored for -rw.
-c Complement the match sense of the pattern operands.
-d Intermediate directories not explicitly listed in the archive
are not created. This option is ignored unless the -r option
is specified.
-f archive
The archive option specifies the pathname of the input or
output archive, overriding the default of standard input for -r
or standard output for -w.
-i Interactively rename files. Substitutions specified by -s
options (described below) are performed before requesting the
new file name from the user. A file is skipped if an empty
line is entered and pax exits with an exit status of 0 if EOF
is encountered.
-l Files are linked rather than copied when possible.
-m File modification times are not retained.
-n When -r is specified, but -w is not, the pattern arguments are
treated as ordinary file names. Only the first occurrence of
each of these files in the input archive is read. The pax
utility exits with a zero exit status after all files in the
list have been read. If one or more files in the list is not
found, pax writes a diagnostic to standard error for each of
the files and exits with a non-zero exit status. the file
names are compared before any of the -i, -s, or -y options are
applied.
-o Restore file ownership as specified in the archive. The
invoking process must have appropriate privileges to accomplish
this.
-p Preserve the access time of the input files after they have
been copied.
-s replstr
File names are modified according to the substitution
expression using the syntax of ed(1) as shown:
-s /old/new/[gp]
Any non null character may be used as a delimiter (a / is used
here as an example). Multiple -s expressions may be specified;
the expressions are applied in the order specified terminating
with the first successful substitution. The optional trailing
p causes successful mappings to be listed on standard error.
replaced each time it occurs in the source string. Files that
substitute to an empty string are ignored both on input and
output.
-t device The device option argument is an implementation-defined
identifier that names the input or output archive device,
overriding the default of standard input for -r and standard
output for -w.
-u Copy each file only if it is newer than a pre-existing file
with the same name. This implies -a.
-v List file names as they are encountered. Produces a verbose
table of contents listing on the standard output when both -r
and -w are omitted, otherwise the file names are printed to
standard error as they are encountered in the archive.
-x format Specifies the output archive format. The input format, which
must be one of the following, is automatically determined when
the -r option is used. The supported formats are:
cpio The extended CPIO interchange format specified in
Extended CPIO Format in IEEE Std. 1003.1-1988.
ustar The extended TAR interchange format specified in
Extended TAR Format in IEEE Std. 1003.1-1988. This is
the default archive format.
-y Interactively prompt for the disposition of each file.
Substitutions specified by -s options (described above) are
performed before prompting the user for disposition. EOF or an
input line starting with the character q caused pax to exit.
Otherwise, an input line starting with anything other than y
causes the file to be ignored. This option cannot be used in
conjunction with the -i option.
Only the last of multiple -f or -t options take effect.
When writing to an archive, the standard input is used as a list of
pathnames if no pathname operands are specified. The format is one
pathname per line. Otherwise, the standard input is the archive file,
which is formatted according to one of the specifications in
Archive/Interchange File format in IEEE Std. 1003.1-1988, or some other
implementation-defined format.
The user ID and group ID of the process, together with the appropriate
privileges, affect the ability of pax to restore ownership and
permissions attributes of the archived files. (See format-reading
utility in Archive/Interchange File Format in IEEE Std. 1003.1-1988.)
The options -a, -c, -d, -i, -l, -p, -t, -u, and -y are provided for
functional compatibility with the historical cpio and tar utilities. The
option defaults were chosen based on the most common usage of these
options, therefore, some of the options have meanings different than
those of the historical commands.
Operands
The following operands are available:
directory The destination directory pathname for copies when both the -r
and -w options are specified. The directory must exist and be
writable before the copy or and error results.
pathname A file whose contents are used instead of the files named on
the standard input. When a directory is named, all of its
files and (recursively) subdirectories are copied as well.
pattern A pattern is given in the standard shell pattern matching
notation. The default if no pattern is specified is *, which
selects all files.
EXAMPLES
The following command
pax -w -f /dev/rmt0 .
copies the contents of the current directory to tape drive 0.
The commands
mkdir newdir
cd olddir
pax -rw . newdir
copies the contents of olddir to newdir .
The command
pax -r -s ',//*usr//*,,' -f pax.out
reads the archive pax.out with all files rooted in "/usr" in the archive
extracted relative to the current directory.
FILES
/dev/tty used to prompt the user for information when the -i or -y
options are specified.
SEE ALSO
cpio(1), find(1), tar(1), cpio(5), tar(5)
DIAGNOSTICS
Pax will terminate immediately, without processing any additional files
on the command line or in the archive.
EXIT CODES
Pax will exit with one of the following values:
0 All files in the archive were processed successfully.
>0 Pax aborted due to errors encountered during operation.
BUGS
Special permissions may be required to copy or extract special files.
Device, user ID, and group ID numbers larger than 65535 cause additional
header records to be output. These records are ignored by some
historical version of cpio(1) and tar(1).
The archive formats described in Archive/Interchange File Format have
certain restrictions that have been carried over from historical usage.
For example, there are restrictions on the length of pathnames stored in
the archive.
When getting an "ls -l" style listing on tar format archives, link counts
are listed as zero since the ustar archive format does not keep link
count information.
On 16 bit architectures, the largest buffer size is 32k-1. This is due,
in part, to using integers in the buffer allocation schemes, however, on
many of these machines, it is not possible to allocate blocks of memory
larger than 32k.
COPYRIGHT
Copyright (c) 1989 Mark H. Colburn.
All rights reserved.
Redistribution and use in source and binary forms are permitted provided
that the above copyright notice is duplicated in all such forms and that
any documentation, advertising materials, and other materials related to
such distribution and use acknowledge that the software was developed by
Mark H. Colburn and sponsored by The USENIX Association.
THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
AUTHOR
Mark H. Colburn
Minnetech Consulting, Inc.
117 Mackubin Street, Suite 1
St. Paul, MN 55102
Sponsored by The USENIX Association for public distribution.