.\" $XConsortium: pax.1 /main/3 1995/11/01 17:01:42 rswiston $ .\" .\" Glenn Fowler .\" AT&T Bell Laboratories .\" .\" @(#)pax.1 (gsf@research.att.com) 01/11/95 .\" .TH PAX 1 .SH NAME pax \- portable archive interchange .SH SYNOPSIS .B pax [ .B \-r ] [ .B \-v ] [ .B \-f .I archive ] [ .B \-s .RI / old / new /[glpsu] ] [ .B \-z .I base ] [ .I "pattern ..." ] .LP .B pax .B \-w [ .B \-a ] [ .B \-v ] [ .B \-f .I archive ] [ .B \-s .RI / old / new /[glpsu] ] [ .B \-x .I format ] [ .B \-z .I base ] [ .I "pathname ..." ] .LP .B pax .B \-rw [ .B \-v ] [ .B \-s .RI / old / new /[glpsu] ] [ .I "pathname ..." ] .I directory .SH DESCRIPTION .I pax reads and writes archive files in various formats. There are four operation modes controlled by combinations of the .B \-r and .B \-w options. .PP .B "pax \-w" writes the files and directories named by the .I pathname arguments to the standard output together with pathname and status information. A directory .I pathname argument refers to the files and (recursively) subdirectories of that directory. If no .I pathname arguments 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. .PP .B "pax \-r" reads files from the standard input that is assumed to be the result of a previous .B "pax \-w" command. Only files with names that match any of the .I pattern arguments are selected. A .I pattern is given in the name-generating notation of .IR sh (1), except that the .B / character is also matched. The default if no .I pattern is given is .BR * , which selects all files. 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 current user, and the permissions and modify times will be the same as those in the archive. If the .B \-r option is omitted then a table of contents of the selected files is listed on the standard output. .PP .B "pax \-rw" reads the files and directories named in the .I pathname arguments and copies them to the destination .IR directory . A directory .I pathname argument refers to the files and (recursively) subdirectories of that directory. If no .I pathname arguments 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. .I directory must exist before the copy. .PP The standard archive formats are automatically detected on input. The default output archive format is implementation defined, but may be overridden by the .B \-x option described below. .I pax archives may be concatenated to combine multiple volumes on a single tape or file. This is accomplished by forcing any format prescribed pad data to be null bytes. Hard links are not maintained between volumes, and delta and base archives cannot be multi-volume. .PP A single archive may span many files/devices. The second and subsequent file names are prompted for on the terminal input. The response may be: .TP .BI ! command Execute .I command via .IR system (3) and prompt again for file name. .TP .B EOF Exit without further processing. .TP .B CR An empty input line retains the previous file name. .TP .I pathname The file name for the next archive part. .SS "Basic Options" .TP .B a For .BR \-w , append files to the end of the archive. .TP .BI f " archive" .I archive is the pathname of the input or output archive, overriding the default standard input for .B \-r and .B \-rw or standard output for .BR \-w . .TP \fBs\fP /\fIold\fP/\fInew\fP/[\fBglpu\fP] File names and symbolic link text are mapped according to the .IR ed (1) style substitution expression. Any non-null character may be used as a delimiter .RB ( / shown here). Multiple .B \-s expressions may be specified; the expressions are applied from left to right. A trailing .B l converts the matched string to lower case. A trailing .B p causes successful mappings to be listed on the standard error. A trailing .B s stops the substitutions on the current name if the substitution changes the name. A trailing .B u converts the matched string to upper case. File names that substitute to the null string are ignored on both input and output. The .B "\-o physical" option inhibits symbolic link text substitution. .TP .B v Produces a verbose table of contents listing on the standard output when both .B \-r and .B \-w are omitted. Otherwise the file names are listed on the standard error as they are encountered. .TP .BI x " format" Specifies the output archive .IR format . If specified with .B \-rw then the standard input is treated as an archive that is converted to a .I format archive on the standard output. The input format, which must be one of the following, is automatically determined. The default output format, named by .BR \- , is currently .BR cpio . The formats are: .RS .PD 0 .TP .B ansi ANSI standard label tape format. Only regular files with simple pathnames are archived. Valid only for blocked devices. .TP .B asc The .B s5r4 extended .IR cpio (5) character format. .TP .B aschk The .B s5r4 extended .IR cpio (5) character format with header checksum. This format is misnamed .B crc in the .B s5r4 documentation. .TP .B binary The .IR cpio (5) binary format with symbolic links. This format is obsolete and should not be used on output. .TP .B cpio The .IR cpio (5) character format with symbolic links. This is the default output format. .TP .B ibmar EBCDIC standard label tape format. Only regular files with simple pathnames are archived. Valid only for tape devices. .TP .B posix The IEEE 1003.1b-1990 interchange format, partially compatible with the X3.27 standard labeled tape format. .TP .B portarch The s5r2 portable object library format. Valid only on input. .TP .B randarch The BSD ranlib object library format. Valid only on input. .TP .B tar The .IR tar (5) format with symbolic links. .TP .B ustar The POSIX IEEE Std 1003.1-1988 tar format. .TP .B vdb The .I "virtual database" format used by .IR cia (1) and .IR cql (1). .TP .B vmsbackup ANSI standard label VMS backup savset tape format. Valid only for input tape devices. .TP .I format Formats can be defined as extensions to the builtin formats. For any non-builtin format .IR format , can be .PD .RE .SS "Extended Options" All options have long string names specified using .B \-o .RI [no] name [= value ]; .TP .B append .RB ( \-a ) For .BR \-w , append files to the end of the archive. .TP .B atime Preserve the access time of all files. .TP .BI base =path .RB ( \-z ) .BI b " blocking" Set the output blocking size. If no suffix (or a .B c suffix) is specified then .I blocking is in 1 character units. A .B b suffix multiplies .I blocking by 512 (1 block), a .B k suffix multiplies .I blocking by 1024 (1 kilobyte) and an .B m suffix multiplies .I blocking by 1048576 (1 megabyte). .I blocking is automatically determined on input and is ignored for .BR \-rw . The default .I blocking is .B 10k for block and character special archive files and implementation defined otherwise. The minimum .I blocking is .BR 1c . .TP .B exact .RB ( \-n ) For .B \-r the pattern arguments are treated as ordinary file names. Only the first occurrence of each of these files in the input archive is read. .I pax exits with zero exit status after all files in the list have been read. If one or more files in the list is not found, .I pax writes a message to standard error for each of these files and exits with a non-zero exit status. The file names are compared before any pathname transformations are applied. .TP .B m File modification times are not retained. .TP .B o Restore file ownership as specified in the archive. The current user must have appropriate privileges. .SS "Compatibility Options" These options provide functional compatibility with the old .IR cpio (1) and .IR tar (1) commands. .TP .B c Complement the match sense of the .I pattern arguments. .TP .B d Intermediate directories not explicitly listed in the archive are not created. .TP .B i Interactively .I rename files. A file is skipped if a null line is entered and .I pax exits if .B EOF is encountered. .TP .B l For .BR \-rw , files are linked rather than copied when possible. .TP .B p Preserve the access times of input files after they have been copied. .TP .BI t " device" .I device is an identifier that names the input or output archive device, overriding the default standard input for .B \-r or standard output for .BR \-w . Tape devices may be specified as .IR drive [ density\|rewind ] where .I drive is a drive number in the range [0\-7], .I density is one of .BR l , .B m and .B h for .B low (800 bpi), .B medium (1600 bpi \- default) and .B high (6250 bpi) tape densities and .I rewind is .B n to inhibit rewinding of the tape device when it is closed. Other forms for .I device are implementation defined. .TP .B u Copy each file only if it is newer than a pre-existing file with the same name. This option implies .BR \-a . .TP .B y Interactively prompt for the disposition of each file. .B EOF or an input line starting with .B q causes .I pax to exit. Otherwise an input line starting with anything other than .B y causes the file to be ignored. .SS "Extended Options" These options provide fine archive control, including delta archive operations. .TP .BI e " filter" Run the .I filter command on each file to be output. The current name of the file to be output is appended to the filter command string before the command is executed by the shell. .TP .B h Inhibit archive heading and summmary information messages to stderr. .TP .B k For .B \-r continue processing the archive after encountering an error by attempting to locate the next valid entry. This is useful for archives stored on unreliable media. .TP .BI z " base" Specifies the delta base archive .I base that is assumed to be the result of a previous .B "pax \-w" command. For .B \-w the input files are compared with the files in .I base and file delta information is placed in the output archive using the delta algorithm. For .B \-r the delta information in the input archive is used to update the output files with respect to the files in .IR base . For .B \-rw the delta information in the archive on the standard input is used to generate an archive on the standard output whose entries are updated with respect to the files in .IR base . If .I base is .B \- or an empty file then the input files are simply compressed. .B "\-z -" must also be specified to produce a compressed archive for .BR \-rw . .TP .BI B " count" Sets the maximum archive part output character count. .I pax prompts for the next archive part file name. Valid only with .BR \-w . .TP .B C Archive entries smaller than .BI \-B " maxblocks" must be contained within a single part. Valid only with .BR \-B . .TP .B L Copy a logical view of the input files. Symbolic links are followed, causing the pointed to files to be copied rather than the symbolic link information. This is the default. .TP .BI M " message" Set the .I "end of medium" prompt to .IR message . This message is used to prompt interactively for the next tape reel or cartridge in cases where the tape runs out before all files have been copied. .I message may contain one .IR printf (3) style integer format specification that is replaced with the next part number. .TP .B P Copy a physical view of the input files. Causes symbolic link information to be copied as opposed to the default (logical view) action of following symbolic links and copying the pointed to files. .TP \fBR\fP \fIoption\fP[\fIvalue\fP][,\fIoption\fP[\fIvalue\fP]...] Set record oriented format options. Multiple options may be concatenated using .BR , . Some options may be fixed for some formats. The options are: .RS .PD 0 .TP .B c Record data is subject to character set conversions. .TP .BI f format Set the output record format to .IR format . The supported record formats are: .RS .TP .B D Variable length with 4 byte record header. The record size default is 512. .TP .B F Fixed length with no record header. The record size default is 128. .TP .B S Spanned variable length with 4 byte record header. The record size default is 0 (no limit). .TP .B U Variable length with no record header. The output block size matches the size of each output record. The record size default is 512. .TP .B V Spanned variable length with binary 4 byte record header. The record size default is 0 (no limit). The .B D format is preferred. .PD .RE .TP .BI m pattern Only those files with input record format matching .I pattern are processed. .TP .B p Partial output blocks are padded to the full blocksize. .TP .BI s size Set the output record size to .IR size . .I size should divide the output blocking. .TP .BI v label Set the output volume label to .IR label . Some formats may truncate and/or case-convert .IR label . .PD .RE .TP .B S Similar to .B \-l except that symbolic links are created. .TP .BI U " id" Set file ownership to the default of the user named .IR id . Valid only for the super-user. .TP .B V Output a `.' as each file is encountered. This overrides the .B \-v option. .TP .B X Do not cross mount points when searching for files to output. .SH DIAGNOSTICS The number of files, blocks, and optionally the number of volumes and media parts are listed on the standard error. For .B \-v the input archive formats are also listed on the standard error. .SH EXAMPLES .TP .B "pax \-w \-t 1m ." Copies the contents of the current directory to tape drive 1, medium density. .TP .PD 0 .BI mkdir " newdir" .TP .BI cd " olddir" .TP .BI "pax \-rw ." " newdir" .PD Copies the .I olddir directory hierarchy to .IR newdir . .SH "SEE ALSO" ar(1), cpio(1), find(1), ksh(1), tar(1), tw(1), libdelta(3), cpio(5), tar(5) .SH BUGS Special privileges may be required to copy special files. .br Each archive format has a hard upper limit on member pathname sizes. .br Device, user-id and group-id numbers larger than 65535 cause additional header records to be output. These records are ignored by old versions of .IR cpio (1) and .IR tar (1).