cpio - Copies files to and from archive storage.
cpio -o[aBcehvV] [-C value] [-M"string"] [-Odevice]
cpio -i[bBcdefmrsStuvz6] [-C value] [-M"string"] [-Idevice]
cpio -p[adlmruvV] directory
Interfaces documented on this reference page conform to
industry standards as follows:
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
A hyphen (-) is required before the -i, -I, -o, -O, and -p
options; all other options follow -i, -o, or -p without
leading spaces and without a hyphen.
[Tru64 UNIX] The following two options are preceded by a
hyphen and must be used separately from the other options.
[Tru64 UNIX] Specifies the input device containing the
archive. This argument must be present to import data
from a device. [Tru64 UNIX] Specifies the output device
to store the archive. This argument must be present to
export data to a device.
Not all of the following options can be used with each of
the -o, -i, and -p options. Resets the access times of
copied files to the current time. (When the l option is
also specified, the access times of the linked files are
not reset.) [Tru64 UNIX] Swaps both bytes and halfwords.
(See also the s and S options.) If there is an odd number
of bytes or halfwords in the file being processed, data
can be lost. This option can only be used with cpio -i.
Performs block input/output, 5120 bytes to a record. This
option cannot be used with cpio -p. It is meaningful only
with data directed to or from /dev/tape/tape*. This
option does not work with certain magnetic tape drives.
The C and B options are mutually exclusive. If you specify
both, the last one on the command line is used.
Writes header information in ASCII character form. Specify
this option when POSIX compliance is required and when you
are creating or restoring archives for or from another
system. [Tru64 UNIX] Performs block input/output using
value as the record size. The C and B options are mutually
exclusive. If you specify both, the last one on the
command line is used. Creates directories as needed.
[Tru64 UNIX] Read or write cpio header information in
extended cpio header format. Use this option to read or
write block special or character special files. Any cpio
archives created with the e option of Tru64 UNIX Version
4.0 are not backward compatible with earlier versions of
Tru64 UNIX. Copies all files except those matching pattern
(cpio -i only). [Tru64 UNIX] Forces cpio to follow
symbolic links as if they were normal files or directories.
The cpio command does not follow symbolic links,
but instead saves the link text in the archive. Links
files rather than copying them, whenever possible. Hard
links are created rather than symbolic (soft) links. This
option can be used only with cpio -p. Retains the previous
file modification time. This option cannot be used
when copying directories. [Tru64 UNIX] Specifies the
End-of-Media message. This option is used to customize
the message that appears when it is time to change archive
volumes. The -M option is valid only when -I or -O is
also specified. Causes cpio to ask whether or not to
rename each file before copying it. If you do not want to
change the file name, enter the current file name. You
can press <Return> only to have cpio skip copying the
file. [Tru64 UNIX] Swaps bytes. This option can be used
only with cpio -i. If there is an odd number of bytes in
the file being processed, data can be lost. [Tru64
UNIX] Swaps halfwords. This option can be used only with
cpio -i. If there is an odd number of halfwords in the
file being processed, data can be lost. Creates a table
of contents of the input. This option does not copy any
files. Copies unconditionally. Otherwise, a file from
the archive with the same name as an existing file in the
file system is copied only if the archived file is the
newer one. Lists file names. If you use this option with
the t option, the output looks similar to that of the ls
-l command. [Tru64 UNIX] Prevents any extended
attributes from being archived with associated files.
This option is particularly useful for archiving files
that are to be restored with previous versions of tar and
cpio. [Tru64 UNIX] Positions the tape after the EOF
marker on extraction or listing. The z option lets the
user extract or list tapes that have multiple archives on
them one after the other without error as a result of the
tape not being positioned correctly for the next extraction
or listing. [Tru64 UNIX] Processes an old file (one
written in UNIX Sixth Edition format). This option can be
used only with cpio -i.
A pathname of an existing directory to be used as the target
of cpio -p. Expressions making use of a patternmatching
notation similar to that used by the shell for
file name pattern matching, and similar to regular expressions.
The following metacharacters are defined: Matches
any string, including the empty string. Matches any single
character. Matches any one of the enclosed characters.
A pair of characters separated by `-' matches any
symbol between the pair (inclusive), as defined by the
system default collating sequence.
In pattern, the special characters ?, *, and [ also
match the / character.
Multiple cases of pattern can be specified and if
no pattern is specified, the default for pattern is
* (that is, select all files).
The cpio command copies files between archive storage and
the file system. It is used to save and restore data from
traditional format cpio archives.
There are three versions of the cpio command:
cpio -o (copy out)
This command reads file pathnames from standard input and
copies these files to standard output along with pathnames
and status information. Output is padded to a 512-byte
cpio -i (copy in)
This command reads from standard input an archive file
created by the cpio -o command and copies from it the
files with names that match pattern. These files are
copied into the current directory tree. The file permissions
are the same as the permissions associated with the
files copied out using cpio -o but if umask is used it
sets the permissions as per umask. The owner and group of
the files are those of the current user unless the user is
superuser, in which case cpio retains the owner and group
of the files of the previous cpio -o.
You can list more than one pattern using the file name
notation described. The default pattern is *, selecting
all files in the archive. In an expression such as [a-z],
the hyphen means "through" according to the current collating
sequence. The collating sequence is determined by
the LC_COLLATE environment variable.
cpio -p (directory copy)
This command reads file pathnames from standard input and
copies these files into the named directory. The specified
directory must already exist. If these pathnames
include directory names and if these directories do not
already exist, you must use the -d option to cause the
directories to be created.
[Tru64 UNIX] Special files are not supported. Pathnames
cannot exceed 128 bytes. Avoid giving cpio pathnames made
up of many uniquely linked files because cpio might not
have enough memory to keep track of them and could lose
The cpio command is marked as LEGACY in XCU Issue 5.
[Tru64 UNIX] Archives created with extended attributes
cannot be read by Version 2.0 of the cpio command. The
following describes the results of restoring archived
files and directories when you use Version 2.0 of the cpio
command: [Tru64 UNIX] You cannot restore an archive
directory with extended attributes. The extended
attributes are restored as a regular file that cannot be
overwritten; the original directory cannot be recreated.
In addition, the cpio command restores the archived files
containing extended attributes as regular files. When the
cpio command restores the original file with the extended
attributes, the command fails with errno:20. [Tru64
UNIX] You cannot archive files with extended attributes.
[Tru64 UNIX] Archives created with the new pax utility
and having cpio format, can be restored using only the new
pax or cpio commands even if none of the archived files
have extended attributes.
To achieve backward compatibility of archived files, use
the following suggestions: Archive only files that do not
have extended attributes. Use the old cpio command at
Socket files are ignored while archiving through the cpio
[Tru64 UNIX] When redirecting the output from cpio to a
special file (device), redirect it to the raw device and
not the block device. Because writing to a block device
is done asynchronously, there is no way to know if the end
of the device has been reached.
The following exit values are returned: Successful completion.
An error occurred.
To copy files to magnetic tape, enter: cpio -ov < filelist
This command copies the files with pathnames that
are listed in the file specification in a compact
form to the magnetic tape (/dev/tape/tape0). The
-v option causes cpio to display the name of each
file as it is copied. This command is useful for
making backup copies of files. To copy files in
the current directory whose names end with onto
magnetic tape, enter: ls *.c | cpio -ov
To copy the current directory and all subdirectories
onto magnetic tape, enter: find . -print |
cpio -ov -O/dev/tape/tape0
This command saves the directory tree that starts
with the current directory (.) and includes all of
its subdirectories and files. Another way to do the
same thing is by entering the following command:
find . -cpio /dev/tape/tape0 -print
The -print option displays the name of each file as
it is copied. To list the files that have been
saved onto a magnetic tape with cpio, enter: cpio
This command displays the table of contents of the
data previously saved onto /dev/tape/tape0 in cpio
format. To list only the file pathnames, use only
the -it options. To copy the files previously
saved with cpio from a magnetic tape, enter: cpio
This command copies the files previously saved onto
/dev/tape/tape0 by cpio back into the file system
(specified by the -i option). The -d option lets
cpio create the appropriate directories if a directory
tree was saved. The -m option maintains the
last modification time that was in effect when the
files were saved. The -v option causes cpio to
display the name of each file as it is copied. To
copy selected files from magnetic tape, enter: cpio
-i -I/dev/tape/tape0 "*.c" "*.o"
This command copies the files that end with or from
magnetic tape. The patterns *.c and *.o must be
enclosed in double quotation marks (" ") to prevent
the shell from treating the * (asterisk) as a pattern-matching
character. In this special case, cpio
itself decodes the pattern-matching characters. To
rename files as they are copied from magnetic tape,
enter: cpio -ir -I/dev/tape/tape0
The -r option causes cpio to ask you whether or not
to rename each file before copying it from magnetic
tape. For example, the following message asks you
whether you want to give the file saved as prog.c a
new name as it is being copied: Rename <prog.c>
To rename the file, type the new name and press
<Return>. To keep the same name, you must enter the
old name at the prompt. To avoid copying the file
at all, press <Return> alone. To copy a directory
and all of its subdirectories, enter: mkdir
/u/jim/newdir find . -print | cpio -pdl
This command duplicates the current directory tree,
including the current directory and all of its subdirectories
and files. The duplicate is placed in
the new /u/jim/newdir directory. The -l option
causes cpio to link files instead of copying them,
ENVIRONMENT VARIABLES [Toc] [Back]
The following environment variables affect the execution
of cpio: Provides a default value for the internationalization
variables that are unset or null. If LANG is unset
or null, the corresponding value from the default locale
is used. If any of the internationalization variables contain
an invalid setting, the utility behaves as if none of
the variables had been defined. If set to a non-empty
string value, overrides the values of all the other internationalization
variables. Determines the locale for the
interpretation of sequences of bytes of text data as characters
(for example, single-byte as opposed to multibyte
characters in arguments and input files) and the behavior
of character classes within bracketed file name patterns.
Determines the locale for the format and contents of diagnostic
messages written to standard error. Determines the
format of date and time strings output when listing the
contents of an archive with the -v option. Determines the
location of message catalogues for the processing of
LC_MESSAGES. Determines the time zone used with date and
Commands: ar(1), find(1), ls(1), ksh(1), pax(1), Bourne
shell sh(1b), POSIX shell sh(1p), tar(1)
[ Back ]