1.\" $OpenBSD: pax.1,v 1.61 2010/09/19 20:55:25 jmc Exp $ 2.\" $NetBSD: pax.1,v 1.3 1995/03/21 09:07:37 cgd Exp $ 3.\" 4.\" Copyright (c) 1992 Keith Muller. 5.\" Copyright (c) 1992, 1993 6.\" The Regents of the University of California. All rights reserved. 7.\" 8.\" This code is derived from software contributed to Berkeley by 9.\" Keith Muller of the University of California, San Diego. 10.\" 11.\" Redistribution and use in source and binary forms, with or without 12.\" modification, are permitted provided that the following conditions 13.\" are met: 14.\" 1. Redistributions of source code must retain the above copyright 15.\" notice, this list of conditions and the following disclaimer. 16.\" 2. Redistributions in binary form must reproduce the above copyright 17.\" notice, this list of conditions and the following disclaimer in the 18.\" documentation and/or other materials provided with the distribution. 19.\" 3. Neither the name of the University nor the names of its contributors 20.\" may be used to endorse or promote products derived from this software 21.\" without specific prior written permission. 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33.\" SUCH DAMAGE. 34.\" 35.\" @(#)pax.1 8.4 (Berkeley) 4/18/94 36.\" 37.Dd $Mdocdate: September 19 2010 $ 38.Dt PAX 1 39.Os 40.Sh NAME 41.Nm pax 42.Nd read and write file archives and copy directory hierarchies 43.Sh SYNOPSIS 44.Bk -words 45.Nm pax 46.Op Fl 0cdjnOvz 47.Op Fl E Ar limit 48.Op Fl f Ar archive 49.Op Fl G Ar group 50.Op Fl s Ar replstr 51.Op Fl T Ar range 52.Op Fl U Ar user 53.Op Ar pattern ... 54.Nm pax 55.Fl r 56.Op Fl 0cDdijknOuvYZz 57.Op Fl E Ar limit 58.Op Fl f Ar archive 59.Op Fl G Ar group 60.Op Fl o Ar options 61.Op Fl p Ar string 62.Op Fl s Ar replstr 63.Op Fl T Ar range 64.Op Fl U Ar user 65.Op Ar pattern ... 66.Nm pax 67.Fl w 68.Op Fl 0adHijLOPtuvXz 69.Op Fl B Ar bytes 70.Op Fl b Ar blocksize 71.Op Fl f Ar archive 72.Op Fl G Ar group 73.Op Fl o Ar options 74.Op Fl s Ar replstr 75.Op Fl T Ar range 76.Op Fl U Ar user 77.Op Fl x Ar format 78.Op Ar 79.Nm pax 80.Fl rw 81.Op Fl 0DdHijkLlnOPtuvXYZ 82.Op Fl G Ar group 83.Op Fl p Ar string 84.Op Fl s Ar replstr 85.Op Fl T Ar range 86.Op Fl U Ar user 87.Op Ar 88.Ar directory 89.Ek 90.Sh DESCRIPTION 91.Nm 92will read, write, and list the members of an archive file 93and will copy directory hierarchies. 94.Nm 95operation is independent of the specific archive format 96and supports a wide variety of different archive formats. 97A list of supported archive formats can be found under the description of the 98.Fl x 99option. 100.Pp 101The presence of the 102.Fl r 103and the 104.Fl w 105options specifies which of the following functional modes 106.Nm 107will operate under: 108.Em list , read , write , 109and 110.Em copy . 111.Bl -tag -width 6n 112.It \*(Ltnone\*(Gt 113.Em List . 114.Nm 115will write to standard output 116a table of contents of the members of the archive file read from 117standard input, whose pathnames match the specified 118.Ar pattern 119arguments. 120The table of contents contains one filename per line 121and is written using single line buffering. 122.It Fl r 123.Em Read . 124.Nm 125extracts the members of the archive file read from the standard input, 126with pathnames matching the specified 127.Ar pattern 128arguments. 129The archive format and blocking is automatically determined on input. 130When an extracted file is a directory, the entire file hierarchy 131rooted at that directory is extracted. 132All extracted files are created relative to the current file hierarchy. 133The setting of ownership, access and modification times, and file mode of 134the extracted files are discussed in more detail under the 135.Fl p 136option. 137.It Fl w 138.Em Write . 139.Nm 140writes an archive containing the 141.Ar file 142operands to standard output 143using the specified archive format. 144When no 145.Ar file 146operands are specified, a list of files to copy with one per line is read from 147standard input. 148When a 149.Ar file 150operand is also a directory, the entire file hierarchy rooted 151at that directory will be included. 152.It Fl rw 153.Em Copy . 154.Nm 155copies the 156.Ar file 157operands to the destination 158.Ar directory . 159When no 160.Ar file 161operands are specified, a list of files to copy with one per line is read from 162the standard input. 163When a 164.Ar file 165operand is also a directory the entire file 166hierarchy rooted at that directory will be included. 167The effect of the 168.Em copy 169is as if the copied files were written to an archive file and then 170subsequently extracted, except that there may be hard links between 171the original and the copied files (see the 172.Fl l 173option below). 174.Pp 175.Sy Warning : 176The destination 177.Ar directory 178must not be one of the 179.Ar file 180operands or a member of a file hierarchy rooted at one of the 181.Ar file 182operands. 183The result of a 184.Em copy 185under these conditions is unpredictable. 186.El 187.Pp 188While processing a damaged archive during a 189.Em read 190or 191.Em list 192operation, 193.Nm 194will attempt to recover from media defects and will search through the archive 195to locate and process the largest number of archive members possible (see the 196.Fl E 197option for more details on error handling). 198.Pp 199The 200.Ar directory 201operand specifies a destination directory pathname. 202If the 203.Ar directory 204operand does not exist, or it is not writable by the user, 205or it is not of type directory, 206.Nm 207will exit with a non-zero exit status. 208.Pp 209The 210.Ar pattern 211operand is used to select one or more pathnames of archive members. 212Archive members are selected using the pattern matching notation described 213by 214.Xr glob 3 . 215When the 216.Ar pattern 217operand is not supplied, all members of the archive will be selected. 218When a 219.Ar pattern 220matches a directory, the entire file hierarchy rooted at that directory will 221be selected. 222When a 223.Ar pattern 224operand does not select at least one archive member, 225.Nm 226will write these 227.Ar pattern 228operands in a diagnostic message to standard error 229and then exit with a non-zero exit status. 230.Pp 231The 232.Ar file 233operand specifies the pathname of a file to be copied or archived. 234When a 235.Ar file 236operand does not select at least one archive member, 237.Nm 238will write these 239.Ar file 240operand pathnames in a diagnostic message to standard error 241and then exit with a non-zero exit status. 242.Pp 243The options are as follows: 244.Bl -tag -width Ds 245.It Fl 0 246Use the NUL 247.Pq Ql \e0 248character as a pathname terminator, instead of newline 249.Pq Ql \en . 250This applies only to the pathnames read from standard input in 251the write and copy modes, 252and to the pathnames written to standard output in list mode. 253This option is expected to be used in concert with the 254.Fl print0 255function in 256.Xr find 1 257or the 258.Fl 0 259flag in 260.Xr xargs 1 . 261.It Fl a 262Append the given 263.Ar file 264operands 265to the end of an archive that was previously written. 266If an archive format is not specified with a 267.Fl x 268option, the format currently being used in the archive will be selected. 269Any attempt to append to an archive in a format different from the 270format already used in the archive will cause 271.Nm 272to exit immediately 273with a non-zero exit status. 274The blocking size used in the archive volume where writing starts 275will continue to be used for the remainder of that archive volume. 276.Pp 277.Sy Warning : 278Many storage devices are not able to support the operations necessary 279to perform an append operation. 280Any attempt to append to an archive stored on such a device may damage the 281archive or have other unpredictable results. 282Tape drives in particular are more likely to not support an append operation. 283An archive stored in a regular file system file or on a disk device will 284usually support an append operation. 285.It Fl B Ar bytes 286Limit the number of bytes written to a single archive volume to 287.Ar bytes . 288The 289.Ar bytes 290limit can end with 291.Sq Li m , 292.Sq Li k , 293or 294.Sq Li b 295to specify multiplication by 1048576 (1M), 1024 (1K) or 512, respectively. 296A pair of 297.Ar bytes 298limits can be separated by 299.Sq Li x 300to indicate a product. 301.Pp 302.Em Warning : 303Only use this option when writing an archive to a device which supports 304an end of file read condition based on last (or largest) write offset 305(such as a regular file or a tape drive). 306The use of this option with a floppy or hard disk is not recommended. 307.It Fl b Ar blocksize 308When 309.Em writing 310an archive, 311block the output at a positive decimal integer number of 312bytes per write to the archive file. 313The 314.Ar blocksize 315must be a multiple of 512 bytes with a maximum of 64512 bytes. 316Archive block sizes larger than 32256 bytes violate the 317.Tn POSIX 318standard and will not be portable to all systems. 319A 320.Ar blocksize 321can end with 322.Sq Li k 323or 324.Sq Li b 325to specify multiplication by 1024 (1K) or 512, respectively. 326A pair of 327.Ar blocksizes 328can be separated by 329.Sq Li x 330to indicate a product. 331A specific archive device may impose additional restrictions on the size 332of blocking it will support. 333When blocking is not specified, the default 334.Ar blocksize 335is dependent on the specific archive format being used (see the 336.Fl x 337option). 338.It Fl c 339Match all file or archive members 340.Em except 341those specified by the 342.Ar pattern 343and 344.Ar file 345operands. 346.It Fl D 347This option is the same as the 348.Fl u 349option, except that the file inode change time is checked instead of the 350file modification time. 351The file inode change time can be used to select files whose inode information 352(e.g., UID, GID, etc.) is newer than a copy of the file in the destination 353.Ar directory . 354.It Fl d 355Cause files of type directory being copied or archived, or archive members of 356type directory being extracted, to match only the directory file or archive 357member and not the file hierarchy rooted at the directory. 358.It Fl E Ar limit 359Limit the number of consecutive read faults while trying to read a flawed 360archive to 361.Ar limit . 362With a positive 363.Ar limit , 364.Nm 365will attempt to recover from an archive read error and will 366continue processing starting with the next file stored in the archive. 367A 368.Ar limit 369of 0 will cause 370.Nm 371to stop operation after the first read error is detected on an archive volume. 372A 373.Ar limit 374of 375.Li NONE 376will cause 377.Nm 378to attempt to recover from read errors forever. 379The default 380.Ar limit 381is a small positive number of retries. 382.Pp 383.Em Warning : 384Using this option with 385.Li NONE 386should be used with extreme caution as 387.Nm 388may get stuck in an infinite loop on a very badly flawed archive. 389.It Fl f Ar archive 390Specify 391.Ar archive 392as the pathname of the input or output archive, overriding the default 393standard input (for 394.Em list 395and 396.Em read ) 397or standard output 398(for 399.Em write ) . 400A single archive may span multiple files and different archive devices. 401When required, 402.Nm 403will prompt for the pathname of the file or device of the next volume in the 404archive. 405.It Fl G Ar group 406Select a file based on its 407.Ar group 408name, or when starting with a 409.Cm # , 410a numeric GID. 411A 412.Ql \e 413can be used to escape the 414.Cm # . 415Multiple 416.Fl G 417options may be supplied and checking stops with the first match. 418.It Fl H 419Follow only command-line symbolic links while performing a physical file 420system traversal. 421.It Fl i 422Interactively rename files or archive members. 423For each archive member matching a 424.Ar pattern 425operand or each file matching a 426.Ar file 427operand, 428.Nm 429will prompt to 430.Pa /dev/tty 431giving the name of the file, its file mode, and its modification time. 432.Nm 433will then read a line from 434.Pa /dev/tty . 435If this line is blank, the file or archive member is skipped. 436If this line consists of a single period, the 437file or archive member is processed with no modification to its name. 438Otherwise, its name is replaced with the contents of the line. 439.Nm 440will immediately exit with a non-zero exit status if 441.Dv EOF 442is encountered when reading a response or if 443.Pa /dev/tty 444cannot be opened for reading and writing. 445.It Fl j 446Use bzip2 to compress (decompress) the archive while writing (reading). 447The bzip2 utility must be installed separately. 448Incompatible with 449.Fl a . 450.It Fl k 451Do not overwrite existing files. 452.It Fl L 453Follow all symbolic links to perform a logical file system traversal. 454.It Fl l 455(The lowercase letter 456.Dq ell . ) 457Link files. 458In the 459.Em copy 460mode 461.Pq Fl r Fl w , 462hard links are made between the source and destination file hierarchies 463whenever possible. 464.It Fl n 465Select the first archive member that matches each 466.Ar pattern 467operand. 468No more than one archive member is matched for each 469.Ar pattern . 470When members of type directory are matched, the file hierarchy rooted at that 471directory is also matched (unless 472.Fl d 473is also specified). 474.It Fl O 475Force the archive to be one volume. 476If a volume ends prematurely, 477.Nm 478will not prompt for a new volume. 479This option can be useful for 480automated tasks where error recovery cannot be performed by a human. 481.It Fl o Ar options 482Information to modify the algorithm for extracting or writing archive files 483which is specific to the archive format specified by 484.Fl x . 485In general, 486.Ar options 487take the form: 488.Ar name Ns = Ns Ar value . 489.Pp 490The following options are available for the old 491.Bx 492.Em tar 493format: 494.Pp 495.Bl -tag -width Ds -compact 496.It Cm nodir 497.It Cm write_opt=nodir 498When writing archives, omit the storage of directories. 499.El 500.It Fl P 501Do not follow symbolic links, perform a physical file system traversal. 502This is the default mode. 503.It Fl p Ar string 504Specify one or more file characteristic options (privileges). 505The 506.Ar string 507option-argument is a string specifying file characteristics to be retained or 508discarded on extraction. 509The string consists of the specification characters 510.Cm a , e , m , o , 511and 512.Cm p . 513Multiple characteristics can be concatenated within the same string 514and multiple 515.Fl p 516options can be specified. 517The meanings of the specification characters are as follows: 518.Bl -tag -width 2n 519.It Cm a 520Do not preserve file access times. 521By default, file access times are preserved whenever possible. 522.It Cm e 523.Dq Preserve everything , 524the user ID, group ID, file mode bits, 525file access time, and file modification time. 526This is intended to be used by 527.Em root , 528someone with all the appropriate privileges, in order to preserve all 529aspects of the files as they are recorded in the archive. 530The 531.Cm e 532flag is the sum of the 533.Cm o 534and 535.Cm p 536flags. 537.It Cm m 538Do not preserve file modification times. 539By default, file modification times are preserved whenever possible. 540.It Cm o 541Preserve the user ID and group ID. 542.It Cm p 543.Dq Preserve 544the file mode bits. 545This is intended to be used by a 546.Em user 547with regular privileges who wants to preserve all aspects of the file other 548than the ownership. 549The file times are preserved by default, but two other flags are offered to 550disable this and use the time of extraction instead. 551.El 552.Pp 553In the preceding list, 554.Sq preserve 555indicates that an attribute stored in the archive is given to the 556extracted file, subject to the permissions of the invoking 557process. 558Otherwise the attribute of the extracted file is determined as 559part of the normal file creation action. 560If neither the 561.Cm e 562nor the 563.Cm o 564specification character is specified, or the user ID and group ID are not 565preserved for any reason, 566.Nm 567will not set the 568.Dv S_ISUID 569.Em ( setuid ) 570and 571.Dv S_ISGID 572.Em ( setgid ) 573bits of the file mode. 574If the preservation of any of these items fails for any reason, 575.Nm 576will write a diagnostic message to standard error. 577Failure to preserve these items will affect the final exit status, 578but will not cause the extracted file to be deleted. 579If the file characteristic letters in any of the string option-arguments are 580duplicated or conflict with each other, the one(s) given last will take 581precedence. 582For example, if 583.Fl p Ar eme 584is specified, file modification times are still preserved. 585.It Fl r 586Read an archive file from standard input 587and extract the specified 588.Ar file 589operands. 590If any intermediate directories are needed in order to extract an archive 591member, these directories will be created as if 592.Xr mkdir 2 593was called with the bitwise inclusive 594.Tn OR 595of 596.Dv S_IRWXU , S_IRWXG , 597and 598.Dv S_IRWXO 599as the mode argument. 600When the selected archive format supports the specification of linked 601files and these files cannot be linked while the archive is being extracted, 602.Nm 603will write a diagnostic message to standard error 604and exit with a non-zero exit status at the completion of operation. 605.It Fl s Ar replstr 606Modify the archive member names according to the substitution expression 607.Ar replstr , 608using the syntax of the 609.Xr ed 1 610utility regular expressions. 611.Ar file 612or 613.Ar pattern 614arguments may be given to restrict the list of archive members to those 615specified. 616.Pp 617The format of these regular expressions is: 618.Pp 619.Dl /old/new/[gp] 620.Pp 621As in 622.Xr ed 1 , 623.Ar old 624is a basic regular expression (see 625.Xr re_format 7 ) 626and 627.Ar new 628can contain an ampersand 629.Pq Ql & , 630.Ql \e Ns Em n 631(where 632.Em n 633is a digit) back-references, 634or subexpression matching. 635The 636.Ar old 637string may also contain newline characters. 638Any non-null character can be used as a delimiter 639.Po 640.Ql / 641is shown here 642.Pc . 643Multiple 644.Fl s 645expressions can be specified. 646The expressions are applied in the order they are specified on the 647command line, terminating with the first successful substitution. 648.Pp 649The optional trailing 650.Cm g 651continues to apply the substitution expression to the pathname substring, 652which starts with the first character following the end of the last successful 653substitution. 654The first unsuccessful substitution stops the operation of the 655.Cm g 656option. 657The optional trailing 658.Cm p 659will cause the final result of a successful substitution to be written to 660standard error in the following format: 661.Pp 662.D1 Em original-pathname No \*(Gt\*(Gt Em new-pathname 663.Pp 664File or archive member names that substitute to the empty string 665are not selected and will be skipped. 666.It Fl T Ar range 667Allow files to be selected based on a file modification or inode change 668time falling within the specified time range. 669The range has the format: 670.Sm off 671.Bd -filled -offset indent 672.Op Ar from_date 673.Op \&, Ar to_date 674.Op / Oo Cm c Oc Op Cm m 675.Ed 676.Sm on 677.Pp 678The dates specified by 679.Ar from_date 680to 681.Ar to_date 682are inclusive. 683If only a 684.Ar from_date 685is supplied, all files with a modification or inode change time 686equal to or younger are selected. 687If only a 688.Ar to_date 689is supplied, all files with a modification or inode change time 690equal to or older will be selected. 691When the 692.Ar from_date 693is equal to the 694.Ar to_date , 695only files with a modification or inode change time of exactly that 696time will be selected. 697.Pp 698When 699.Nm 700is in the 701.Em write 702or 703.Em copy 704mode, the optional trailing field 705.Oo Cm c Oc Ns Op Cm m 706can be used to determine which file time (inode change, file modification or 707both) are used in the comparison. 708If neither is specified, the default is to use file modification time only. 709The 710.Cm m 711specifies the comparison of file modification time (the time when 712the file was last written). 713The 714.Cm c 715specifies the comparison of inode change time (the time when the file 716inode was last changed; e.g., a change of owner, group, mode, etc). 717When 718.Cm c 719and 720.Cm m 721are both specified, then the modification and inode change times are 722both compared. 723.Pp 724The inode change time comparison is useful in selecting files whose 725attributes were recently changed or selecting files which were recently 726created and had their modification time reset to an older time (as what 727happens when a file is extracted from an archive and the modification time 728is preserved). 729Time comparisons using both file times is useful when 730.Nm 731is used to create a time based incremental archive (only files that were 732changed during a specified time range will be archived). 733.Pp 734A time range is made up of six different fields and each field must contain two 735digits. 736The format is: 737.Pp 738.Dl [[[[[cc]yy]mm]dd]HH]MM[.SS] 739.Pp 740Where 741.Ar cc 742is the first two digits of the year (the century), 743.Ar yy 744is the last two digits of the year, 745the first 746.Ar mm 747is the month (from 01 to 12), 748.Ar dd 749is the day of the month (from 01 to 31), 750.Ar HH 751is the hour of the day (from 00 to 23), 752.Ar MM 753is the minute (from 00 to 59), 754and 755.Ar SS 756is the seconds (from 00 to 59). 757The minute field 758.Ar MM 759is required, while the other fields are optional and must be added in the 760following order: 761.Ar HH , dd , mm , 762.Ar yy , cc . 763.Pp 764The 765.Ar SS 766field may be added independently of the other fields. 767Time ranges are relative to the current time, so 768.Ic -T 1234/cm 769would select all files with a modification or inode change time 770of 12:34 PM today or later. 771Multiple 772.Fl T 773time range can be supplied and checking stops with the first match. 774.It Fl t 775Reset the access times of any file or directory read or accessed by 776.Nm 777to be the same as they were before being read or accessed by 778.Nm pax . 779.It Fl U Ar user 780Select a file based on its 781.Ar user 782name, or when starting with a 783.Cm # , 784a numeric UID. 785A 786.Ql \e 787can be used to escape the 788.Cm # . 789Multiple 790.Fl U 791options may be supplied and checking stops with the first match. 792.It Fl u 793Ignore files that are older (having a less recent file modification time) 794than a pre-existing file or archive member with the same name. 795During 796.Em read , 797an archive member with the same name as a file in the file system will be 798extracted if the archive member is newer than the file. 799During 800.Em write , 801a file system member with the same name as an archive member will be 802written to the archive if it is newer than the archive member. 803During 804.Em copy , 805the file in the destination hierarchy is replaced by the file in the source 806hierarchy or by a link to the file in the source hierarchy if the file in 807the source hierarchy is newer. 808.It Fl v 809During a 810.Em list 811operation, produce a verbose table of contents using the format of the 812.Xr ls 1 813utility with the 814.Fl l 815option. 816For pathnames representing a hard link to a previous member of the archive, 817the output has the format: 818.Pp 819.Dl Em ls -l listing Li == Em link-name 820.Pp 821For pathnames representing a symbolic link, the output has the format: 822.Pp 823.Dl Em ls -l listing Li =\*(Gt Em link-name 824.Pp 825Where 826.Em ls -l listing 827is the output format specified by the 828.Xr ls 1 829utility when used with the 830.Fl l 831option. 832Otherwise for all the other operational modes 833.Po Em read , write , No and Em copy 834.Pc , 835pathnames are written and flushed to standard error 836without a trailing newline 837as soon as processing begins on that file or 838archive member. 839The trailing newline 840is not buffered and is written only after the file has been read or written. 841.It Fl w 842Write files to the standard output 843in the specified archive format. 844When no 845.Ar file 846operands are specified, standard input 847is read for a list of pathnames with one per line without any leading or 848trailing 849.Aq blanks . 850.It Fl X 851When traversing the file hierarchy specified by a pathname, 852do not descend into directories that have a different device ID. 853See the 854.Li st_dev 855field as described in 856.Xr stat 2 857for more information about device IDs. 858.It Fl x Ar format 859Specify the output archive format, with the default format being 860.Cm ustar . 861.Nm 862currently supports the following formats: 863.Bl -tag -width "sv4cpio" 864.It Cm bcpio 865The old binary cpio format. 866The default blocksize for this format is 5120 bytes. 867This format is not very portable and should not be used when other formats 868are available. 869Inode and device information about a file (used for detecting file hard links 870by this format), which may be truncated by this format, is detected by 871.Nm 872and is repaired. 873.It Cm cpio 874The extended cpio interchange format specified in the 875.St -p1003.2 876standard. 877The default blocksize for this format is 5120 bytes. 878Inode and device information about a file (used for detecting file hard links 879by this format), which may be truncated by this format, is detected by 880.Nm 881and is repaired. 882.It Cm sv4cpio 883The System V release 4 cpio. 884The default blocksize for this format is 5120 bytes. 885Inode and device information about a file (used for detecting file hard links 886by this format), which may be truncated by this format, is detected by 887.Nm 888and is repaired. 889.It Cm sv4crc 890The System V release 4 cpio with file CRC checksums. 891The default blocksize for this format is 5120 bytes. 892Inode and device information about a file (used for detecting file hard links 893by this format), which may be truncated by this format, is detected by 894.Nm 895and is repaired. 896.It Cm tar 897The old 898.Bx 899tar format as found in 900.Bx 4.3 . 901The default blocksize for this format is 10240 bytes. 902Pathnames stored by this format must be 100 characters or less in length. 903Only 904.Em regular 905files, 906.Em hard links , soft links , 907and 908.Em directories 909will be archived (other file system types are not supported). 910For backwards compatibility with even older tar formats, a 911.Fl o 912option can be used when writing an archive to omit the storage of directories. 913This option takes the form: 914.Pp 915.Dl Fl o Cm write_opt=nodir 916.It Cm ustar 917The extended tar interchange format specified in the 918.St -p1003.2 919standard. 920The default blocksize for this format is 10240 bytes. 921Filenames stored by this format must be 100 characters or less in length; 922the total pathname must be 256 characters or less. 923.El 924.Pp 925.Nm 926will detect and report any file that it is unable to store or extract 927as the result of any specific archive format restrictions. 928The individual archive formats may impose additional restrictions on use. 929Typical archive format restrictions include (but are not limited to): 930file pathname length, file size, link pathname length, and the type of the 931file. 932.It Fl Y 933This option is the same as the 934.Fl D 935option, except that the inode change time is checked using the 936pathname created after all the file name modifications have completed. 937.It Fl Z 938This option is the same as the 939.Fl u 940option, except that the modification time is checked using the 941pathname created after all the file name modifications have completed. 942.It Fl z 943Use 944.Xr gzip 1 945to compress (decompress) the archive while writing (reading). 946Incompatible with 947.Fl a . 948.El 949.Pp 950The options that operate on the names of files or archive members 951.Po Fl c , 952.Fl i , 953.Fl j , 954.Fl n , 955.Fl s , 956.Fl u , 957.Fl v , 958.Fl D , 959.Fl G , 960.Fl T , 961.Fl U , 962.Fl Y , 963and 964.Fl Z 965.Pc 966interact as follows. 967.Pp 968When extracting files during a 969.Em read 970operation, archive members are 971.Sq selected , 972based only on the user specified pattern operands as modified by the 973.Fl c , 974.Fl n , 975.Fl u , 976.Fl D , 977.Fl G , 978.Fl T , 979.Fl U 980options. 981Then any 982.Fl s 983and 984.Fl i 985options will modify in that order, the names of these selected files. 986Then the 987.Fl Y 988and 989.Fl Z 990options will be applied based on the final pathname. 991Finally, the 992.Fl v 993option will write the names resulting from these modifications. 994.Pp 995When archiving files during a 996.Em write 997operation, or copying files during a 998.Em copy 999operation, archive members are 1000.Sq selected , 1001based only on the user specified pathnames as modified by the 1002.Fl n , 1003.Fl u , 1004.Fl D , 1005.Fl G , 1006.Fl T , 1007and 1008.Fl U 1009options (the 1010.Fl D 1011option only applies during a copy operation). 1012Then any 1013.Fl s 1014and 1015.Fl i 1016options will modify in that order, the names of these selected files. 1017Then during a 1018.Em copy 1019operation the 1020.Fl Y 1021and the 1022.Fl Z 1023options will be applied based on the final pathname. 1024Finally, the 1025.Fl v 1026option will write the names resulting from these modifications. 1027.Pp 1028When one or both of the 1029.Fl u 1030or 1031.Fl D 1032options are specified along with the 1033.Fl n 1034option, a file is not considered selected unless it is newer 1035than the file to which it is compared. 1036.Sh ENVIRONMENT 1037.Bl -tag -width Fl 1038.It Ev TMPDIR 1039Path in which to store temporary files. 1040.El 1041.Sh EXIT STATUS 1042The 1043.Nm 1044utility exits with one of the following values: 1045.Pp 1046.Bl -tag -width Ds -offset indent -compact 1047.It 0 1048All files were processed successfully. 1049.It 1 1050An error occurred. 1051.El 1052.Sh EXAMPLES 1053Copy the contents of the current directory to the device 1054.Pa /dev/rst0 : 1055.Pp 1056.Dl $ pax -w -f /dev/rst0 \&. 1057.Pp 1058Give the verbose table of contents for an archive stored in 1059.Pa filename : 1060.Pp 1061.Dl $ pax -v -f filename 1062.Pp 1063This sequence of commands will copy the entire 1064.Pa olddir 1065directory hierarchy to 1066.Pa newdir : 1067.Bd -literal -offset indent 1068$ mkdir newdir 1069$ cd olddir 1070$ pax -rw . ../newdir 1071.Ed 1072.Pp 1073Extract files from the archive 1074.Pa a.pax . 1075Files rooted in 1076.Pa /usr 1077are extracted relative to the current working directory; 1078all other files are extracted to their unmodified path. 1079.Pp 1080.Dl $ pax -r -s ',^/usr/,,' -f a.pax 1081.Pp 1082This can be used to interactively select the files to copy from the 1083current directory to 1084.Pa dest_dir : 1085.Pp 1086.Dl $ pax -rw -i \&. dest_dir 1087.Pp 1088Extract all files from the archive 1089.Pa a.pax 1090which are owned by 1091.Em root 1092with group 1093.Em bin 1094and preserve all file permissions: 1095.Pp 1096.Dl "$ pax -r -pe -U root -G bin -f a.pax" 1097.Pp 1098Update (and list) only those files in the destination directory 1099.Pa /backup 1100which are older (less recent inode change or file modification times) than 1101files with the same name found in the source file tree 1102.Pa home : 1103.Pp 1104.Dl "$ pax -r -w -v -Y -Z home /backup" 1105.Sh DIAGNOSTICS 1106Whenever 1107.Nm 1108cannot create a file or a link when reading an archive or cannot 1109find a file when writing an archive, or cannot preserve the user ID, 1110group ID, or file mode when the 1111.Fl p 1112option is specified, a diagnostic message is written to standard error 1113and a non-zero exit status will be returned, but processing will continue. 1114In the case where 1115.Nm 1116cannot create a link to a file, 1117.Nm 1118will not create a second copy of the file. 1119.Pp 1120If the extraction of a file from an archive is prematurely terminated by 1121a signal or error, 1122.Nm 1123may have only partially extracted a file the user wanted. 1124Additionally, the file modes of extracted files and directories 1125may have incorrect file bits, and the modification and access times may be 1126wrong. 1127.Pp 1128If the creation of an archive is prematurely terminated by a signal or error, 1129.Nm 1130may have only partially created the archive, which may violate the specific 1131archive format specification. 1132.Pp 1133If while doing a 1134.Em copy , 1135.Nm 1136detects a file is about to overwrite itself, the file is not copied, 1137a diagnostic message is written to standard error 1138and when 1139.Nm 1140completes it will exit with a non-zero exit status. 1141.Sh SEE ALSO 1142.Xr cpio 1 , 1143.Xr tar 1 1144.Sh STANDARDS 1145The 1146.Nm 1147utility is compliant with the 1148.St -p1003.1-2008 1149specification. 1150.Pp 1151The flags 1152.Op Fl 0BDEGjOPTUYZz , 1153the archive formats 1154.Em bcpio , 1155.Em sv4cpio , 1156.Em sv4crc , 1157.Em tar , 1158and the flawed archive handling during 1159.Em list 1160and 1161.Em read 1162operations 1163are extensions to that specification. 1164.Sh AUTHORS 1165Keith Muller at the University of California, San Diego. 1166