Click on any of the 687 commands below to get a description and list of available options. All links in the command summaries point to the online version of the book on Safari Bookshelf.
Copy file archives from or to tape or disk, or to another location on the local machine. Each of the three flags -i, -o, or -p accepts different options.
Flags
-i, --extract [options] [patterns]
Copy in (extract) from an archive files whose names match selected patterns. Each pattern can include Bourne shell filename metacharacters. (Patterns should be quoted or escaped so that they are interpreted by cpio, not by the shell.) If pattern is omitted, all files are copied in. Existing files are not overwritten by older versions from the archive unless -u is specified.
-o, --create [options]
Copy out to an archive a list of files whose names are given on the standard input.
-p, --pass-through [options] directory
Copy (pass) files to another directory on the same system. Destination pathnames are interpreted relative to the named directory.
Comparison of valid options
Options available to the -i, -o, and -p flags are shown here (the - is omitted for clarity):
i: bcdf mnrtsuv B SVCEHMR IF
o: 0a c vABL VC HM O F
p: 0a d lm uv L V R
Options
-0, --null
Expect list of filenames to be terminated with null, not newline. This allows files with a newline in their names to be included.
-a, --reset-access-time
Reset access times of input files after reading them.
-A, --append
Append files to an existing archive, which must be a disk file. Specify this archive with -O or -F.
-b, --swap
Swap bytes and half-words to convert between big-endian and little-endian 32-bit integers.
-B
Block input or output using 5120 bytes per record (default is 512 bytes per record).
--blocksize=size
Set input or output block size to size × 512 bytes.
-c
Read or write header information as ASCII characters; useful when source and destination machines are different types.
-Cn, --io-size=n
Like -B, but block size can be any positive integer n.
-d, --make-directories
Create directories as needed.
-Efile, --pattern-file=file
Extract from the archives filenames that match patterns in file.
-f, --nonmatching
Reverse the sense of copying; copy all files except those that match patterns.
-Ffile, --file=file
Use file as the archive, not stdin or stdout. file can reside on another machine, if given in the form user@hostname:file (where user@ is optional).
--force-local
Assume that file (provided by -F, -I, or -O) is a local file, even if it contains a colon (:) indicating a remote file.
-Htype, --format=type
Use type format. Default for copy-out is bin; default for copy-in is autodetection of the format. Valid formats (all caps also accepted) are:
bin
Binary.
odc
Old (POSIX.1) portable format.
newc
New (SVR4) portable format.
crc
New (SVR4) portable format with checksum added.
tar
Tar.
ustar
POSIX.1 tar (also recognizes GNU tar archives).
hpbin
HP-UX's binary (obsolete).
hpodc
HP-UX's portable format.
-Ifile
Read file as an input archive. May be on a remote machine (see -F).
-k
Ignored. For backward compatibility.
-l, --link
Link files instead of copying.
-L, --dereference
Follow symbolic links.
-m, --preserve-modification-time
Retain previous file modification time.
-Mmsg, --message=msg
Print msg when switching media, as a prompt before switching to new media. Use variable %d in the message as a numeric ID for the next medium. -M is valid only with -I or -O.
-n, --numeric-uid-gid
When verbosely listing contents, show user ID and group ID numerically.
--no-absolute-filenames
Create all copied-in files relative to the current directory.
--no-preserve-owner
Make all copied files owned by yourself, instead of the owner of the original. Can be used only if you are a privileged user.
-Ofile
Archive the output to file, which may be a file on another machine (see -F).
--only-verify-crc
For a CRC-format archive, verify the CRC of each file; don't actually copy the files in.
--quiet
Don't print the number of blocks copied.
-r
Rename files interactively.
-R [user] [:group] , --owner [user] [:group]
Reassign file ownership and group information to the user's login ID (privileged users only).
-s, --swap-bytes
Swap bytes of each two-byte half-word.
-S, --swap-half-words
Swap half-words of each four-byte word.
--sparse
For copy-out and copy-pass, write files that have large blocks of zeros as sparse files.
-t, --list
Print a table of contents of the input (create no files). When used with the -v option, resembles output of ls -l.
-u, --unconditional
Unconditional copy; old files can overwrite new ones.
-v, --verbose
Print a list of filenames processed.
-V, --dot
Print a dot for each file read or written (this shows cpio at work without cluttering the screen).
--version
Print version number and then exit.
Examples
Generate a list of files whose names end in .old using find; use the list as input to cpio:
find . -name "*.old" | cpio -ocBv > /dev/rst8
Restore from a tape drive all files whose names contain save (subdirectories are created if needed):