cpio(1) cpio(1)



NAME cpio - copy file archives in and out; duplicate directory trees
SYNOPSIS cpio -o [-e extarg ] [achvxABC]
cpio -i[bcdfmrstuvxBPRSU6] [pattern...]
cpio -p [-e extarg ] [adlmruvxU] directory
DESCRIPTION The cpio command saves and restores archives of files on magnetic tape, other devices, or a regular file, and copies files from one directory to another while replicating the directory tree structure.
cpio -o (copy out, export) Read standard input to obtain a list of path names, and copy those files to standard output together with path name and status information. The output is padded to a 512-byte boundary.
cpio -i (copy in, import) Extract files from standard input, which is assumed to be the result of a previous cpio -o.
If pattern..., is specified, only the files with names that match a pattern according to the rules of Pattern Matching Notation (see regexp(5)) are selected. A leading ! on a pattern indicates that only those names that do not match the remainder of the pattern should be selected. Multiple patterns can be specified. The patterns are additive. If no pattern is specified, the default is * (select all files). See the f option, as well.
Extracted files are conditionally created and copied into the current directory tree, as determined by the options described below. The permissions of the files match the permissions of the original files when the archive was created by cpio -o unless the U option is used. File owner and group are that of the current user unless the user has appropriate privileges, in which case cpio retains the owner and group of the files of the previous cpio -o.
cpio -p (passthrough) Read standard input to obtain a list of path names of files which are then conditionally created and copied into the destination directory tree as determined by the options described below. directory must exist. Destination path names are interpreted relative to directory.
Options cpio recognizes the following options, which can be appended as


Hewlett-Packard Company - 1 - HP-UX Release 10.20: July 1996





cpio(1) cpio(1)



appropriate to -i, -o, and -p. Whitespace and hyphens are not permitted between these options and -i, -o, or -p.
a Reset access times of input files after they are copied.
b Swap both bytes and half-words. Use only with -i. See the P option for details; see also the s and S options.
c Write or read header information in ASCII character form for portability.
d Create directories as needed.
-e extarg Specifies the handling of any extent attributes of the file(s) to be archived or copied. extarg takes one of the following values.
warn Archive or copy the file and issue a warning message if extent attributes cannot be preserved. ignore Do not issue a warning message even if extent attributes cannot be preserved. force Any file(s) with extent attributes will not be archived and a warning message will be issued.
When using the -o option, extent attributes are not preserved in the archive. Furthermore, the -p option will not preserve extent attributes if the files are being copied to a file system that does not support extent attributes. If -e is not specified, the default value for extarg is warn.
f Copy in all files except those selected by pattern....
h Follow symbolic links as though they were normal files or directories. Normally, cpio archives the link.
l Whenever possible, link files rather than copying them. This option does not destroy existing files. Use only with -p.
m Retain previous file modification time. This option does not affect directories that are being copied.
r Rename files interactively. If the user types a null line, the file is skipped.
s Swap all bytes of the file. Use only with -i. See the P option for details; see also the s and S options.


Hewlett-Packard Company - 2 - HP-UX Release 10.20: July 1996





cpio(1) cpio(1)



t Print only a table of contents of the input. No files are created, read, or copied.
u Copy unconditionally (normally, an older file does not replace a newer file with the same name).
v Print a list of file names as they are processed. When used with the t option, the table of contents has the format:
numeric-mode owner-name blocks date-time filename
where numeric-mode is the file privileges in numeric format, owner-name is the name of the file owner, blocks is the size of the file in 512-byte blocks, date-time is the date and time the file was last modified, and filename is the path name of the file as recorded in the archive.
x Save or restore device special files. Since mknod() is used to recreate these files on a restore, -ix and -px can be used only by users with appropriate privileges (see mknod(2)). This option is intended for intrasystem (backup) use only. Restoring device files from previous versions of the OS, or from different systems can be very dangerous. cpio may prevent the restoration of certain device files from the archive.
A Suppress warning messages regarding optional access control list entries. cpio does not back up optional access control list entries in a file's access control list (see acl(5)). Normally, a warning message is printed for each file that has optional access control list entries.
B Block input/output at 5120 bytes to the record (does not apply to cpio -p). This option is meaningful only with data directed to or from devices that support variable- length records such as magnetic tape.
C Have cpio checkpoint itself at the start of each volume. If cpio is writing to a streaming tape drive with immediate-report mode enabled and a write error occurs, it normally aborts and exits with return code 2. With this option specified, cpio instead automatically restarts itself from the checkpoint and rewrites the current volume. Alternatively, if cpio is not writing to such a device and a write error occurs, cpio normally continues with the next volume. With this option specified, however, the user can choose to either ignore the error or rewrite the current volume.


Hewlett-Packard Company - 3 - HP-UX Release 10.20: July 1996





cpio(1) cpio(1)



P Read a file written on a PDP-11 or VAX system (with byte-swapping) that did not use the c option. Use only with -i. Files copied in this mode are not changed. Non-ASCII files are likely to need further processing to be readable. This processing often requires knowledge of file contents, and thus cannot always be done by this program. The b, s, and S options can be used when swapping all the bytes on the tape (rather than just in the headers) is appropriate. In general, text is best processed with P and binary data with one of the other options.
(PDP-11 and VAX are registered trademarks of Digital Equipment Corporation.)
R Resynchronize automatically when cpio goes "out of phase", (see DIAGNOSTICS).
S Swap all half-words in the file. Use only with -i. See the P option for details; see also the b and s options.
U Use the process's file-mode creation mask (see umask(2)) to modify the mode of files created, in the same manner as creat(2).
6 Process a UNIX Sixth-Edition-format file. Use only with -i.
Note that cpio archives created using a raw device file must be read using a raw device file.
When the end of the tape is reached, cpio prompts the user for a new special file and continues.
If you want to pass one or more metacharacters to cpio without the shell expanding them, be sure to precede each of them with a backslash (\).
Device files written with the -ox option (such as /dev/tty03) do not transport to other implementations of HP-UX.
EXTERNAL INFLUENCES Environment Variables LC_COLLATE determines the collating sequence used in evaluating pattern matching notation for file name generation.
LC_CTYPE determines the interpretation of text as single and/or multi-byte characters, and the characters matched by character class expressions in pattern matching notation.




Hewlett-Packard Company - 4 - HP-UX Release 10.20: July 1996





cpio(1) cpio(1)



LC_TIME determines the format and content of date and time strings output when listing the contents of an archive with the v option.
LANG determines the language in which messages are displayed.
If LC_COLLATE, LC_CTYPE, or LC_TIME is not specified in the environment or is set to the empty string, the value of LANG is used as a default for each unspecified or empty variable. If LANG is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of LANG. If any internationalization variable contains an invalid setting, cpio behaves as if all internationalization variables are set to "C". See environ(5).
International Code Set Support Single- and multi-byte character code sets are supported.
RETURN VALUE cpio returns the following exit codes:
0 Successful completion. Review standard error for files that could not be transferred.
1 Error during resynchronization. Some files may not have been recovered.
2 Out-of-phase error. A file header is corrupt or in the wrong format.
DIAGNOSTICS Out of phase--get help Perhaps the "c" option should[n't] be used
cpio -i could not read the header of an archived file. The header is corrupt or it was written in a different format. Without the R option, cpio returns an exit code of 2.
If no file name has been displayed yet, the problem may be the format. Try specifying a different header format option: null for standard format; c for ASCII; b, s, P, or S, for one of the byte-swapping formats; or 6 for UNIX Sixth Edition.
Otherwise, a header may be corrupt. Use the R option to have cpio attempt to resynchronize the file automatically. Resynchronizing means that cpio tries to find the next good header in the archive file and continues processing from there. If cpio tries to resynchronize from being out of phase, it returns an exit code of 1.
Other diagnostic messages are self-explanatory.




Hewlett-Packard Company - 5 - HP-UX Release 10.20: July 1996





cpio(1) cpio(1)



EXAMPLES Copy the contents of a directory into a tape archive:
ls | cpio -o > /dev/rmt/c0t0d0BEST
Duplicate a directory hierarchy:
cd olddir find . -depth -print | cpio -pd newdir
The trivial case
find . -depth -print | cpio -oB >/dev/rmt/c0t0d0BEST
can be handled more efficiently by:
find . -cpio /dev/rmt/c0t0d0BEST
WARNINGS Because of industry standards and interoperability goals, cpio does not support the archival of files larger than 2GB or files that have user/group IDs greater than 60K. Files with user/group IDs greater than 60K are archived and restored under the user/group ID of the current process.
Do not redirect the output of cpio to a named cpio archive file residing in the same directory as the original files belonging to that cpio archive. This can cause loss of data.
cpio strips any leading ./ characters in the list of filenames piped to it.
Path names are restricted to PATH_MAX characters (see <limits.h> and limits(5)). If there are too many unique linked files, the program runs out of memory to keep track of them. Thereafter, linking information is lost. Only users with appropriate privileges can copy special files.
cpio tapes written on HP machines with the -ox[c] options can sometimes mislead (non-HP) versions of cpio that do not support the x option. If a non-HP (or non-AT&T) version of cpio happens to be modified so that the (HP) cpio recognizes it as a device special file, a spurious device file might be created.
If /dev/tty is not accessible, cpio issues a complaint and exits.
The -pd option does not create the directory typed on the command line.
The -idr option does not make empty directories.



Hewlett-Packard Company - 6 - HP-UX Release 10.20: July 1996





cpio(1) cpio(1)



The -plu option does not link files to existing files.
POSIX defines a file named TRAILER!!! as an end-of-archive marker. Consequently, if a file of that name is contained in a group of files being written by cpio -o, the file is interpreted as end-of-archive, and no remaining files are copied. The recommended practice is to avoid naming files anything that resembles an end-of-archive file name.
To create a POSIX-conforming cpio archive, the c option must be used. To read a POSIX-conforming cpio archive, the c option must be used and the b, s, S, and 6 options should not be used. If the user does not have appropriate privileges, the U option must also be used to get POSIX-conforming behavior when reading an archive. Users with appropriate privileges should not use this option to get POSIX -conforming behavior.
Using Cartridge Tape Drives For an explanation of the constraints on cartridge tapes, see ct(7).
Using cpio to write directly to a cartridge tape unit can severely damage the tape drive in a short amount of time, and is therefore strongly discouraged. The recommended method of writing to the cartridge tape unit is to use the tcio command (see tcio(1)) in conjunction with cpio (note that the B option must not be used by cpio when tcio is used). tcio buffers data into larger pieces suitable for cartridge tapes. The B option must be used when writing directly (that is, without using tcio) to a CS/80 cartridge tape unit.
DEPENDENCIES If the path given to cpio contains a symbolic link as the last element, this link is traversed and pathname resolution continues. cpio uses the symbolic link's target, rather than that of the link.
SEE ALSO ar(1), find(1), tar(1), tcio(1), cpio(4), acl(5), environ(5), lang(5), regexp(5).
STANDARDS CONFORMANCE cpio: SVID2, SVID3, XPG2, XPG3













Hewlett-Packard Company - 7 - HP-UX Release 10.20: July 1996