mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-30 12:04:07 +00:00
7844af61ca
Submitted-by: Josh Gilliam Closes PR: 4422
329 lines
11 KiB
Groff
329 lines
11 KiB
Groff
.TH CPIO 1L \" -*- nroff -*-
|
|
.SH NAME
|
|
cpio \- copy files to and from archives
|
|
.SH SYNOPSIS
|
|
.B cpio
|
|
{\-o|\-\-create} [\-0acvABLV] [\-C bytes] [\-H format] [\-M message]
|
|
[\-O [[user@]host:]archive] [\-F [[user@]host:]archive]
|
|
[\-\-file=[[user@]host:]archive] [\-\-format=format] [\-\-message=message]
|
|
[\-\-null] [\-\-reset-access-time] [\-\-verbose] [\-\-dot] [\-\-append]
|
|
[\-\-block-size=blocks] [\-\-dereference] [\-\-io-size=bytes] [\-\-quiet]
|
|
[\-\-force\-local] [\-\-help] [\-\-version] < name-list [> archive]
|
|
|
|
.B cpio
|
|
{\-i|\-\-extract} [\-bcdfmnrtsuvBSV] [\-C bytes] [\-E file] [\-H format]
|
|
[\-M message] [\-R [user][:.][group]] [\-I [[user@]host:]archive]
|
|
[\-F [[user@]host:]archive] [\-\-file=[[user@]host:]archive]
|
|
[\-\-make-directories] [\-\-nonmatching] [\-\-preserve-modification-time]
|
|
[\-\-numeric-uid-gid] [\-\-rename] [\-\-list] [\-\-swap-bytes] [\-\-swap] [\-\-dot]
|
|
[\-\-unconditional] [\-\-verbose] [\-\-block-size=blocks] [\-\-swap-halfwords]
|
|
[\-\-io-size=bytes] [\-\-pattern-file=file] [\-\-format=format]
|
|
[\-\-owner=[user][:.][group]] [\-\-no-preserve-owner] [\-\-message=message]
|
|
[\-\-force\-local] [\-\-no\-absolute\-filenames] [\-\-sparse] [\-\-only\-verify\-crc]
|
|
[\-\-quiet] [\-\-help] [\-\-version] [pattern...] [< archive]
|
|
|
|
.B cpio
|
|
{\-p|\-\-pass-through} [\-0adlmuvLV] [\-R [user][:.][group]]
|
|
[\-\-null] [\-\-reset-access-time] [\-\-make-directories] [\-\-link] [\-\-quiet]
|
|
[\-\-preserve-modification-time] [\-\-unconditional] [\-\-verbose] [\-\-dot]
|
|
[\-\-dereference] [\-\-owner=[user][:.][group]] [\-\-no-preserve-owner]
|
|
[\-\-sparse] [\-\-help] [\-\-version] destination-directory < name-list
|
|
.SH DESCRIPTION
|
|
This manual page
|
|
documents the GNU version of
|
|
.BR cpio .
|
|
.B cpio
|
|
copies files into or out of a cpio or tar archive, which is a file that
|
|
contains other files plus information about them, such as their
|
|
file name, owner, timestamps, and access permissions. The archive can
|
|
be another file on the disk, a magnetic tape, or a pipe.
|
|
.B cpio
|
|
has three operating modes.
|
|
.PP
|
|
In copy-out mode,
|
|
.B cpio
|
|
copies files into an archive. It reads a list of filenames, one per
|
|
line, on the standard input, and writes the archive onto the standard
|
|
output. A typical way to generate the list of filenames is with the
|
|
.B find
|
|
command; you should give
|
|
.B find
|
|
the \-d option to minimize problems with permissions on
|
|
directories that are unwritable or not searchable.
|
|
.PP
|
|
In copy-in mode,
|
|
.B cpio
|
|
copies files out of an archive or lists the archive contents. It
|
|
reads the archive from the standard input. Any non-option command
|
|
line arguments are shell globbing patterns; only files in the archive
|
|
whose names match one or more of those patterns are copied from the
|
|
archive. Unlike in the shell, an initial `.' in a filename does
|
|
match a wildcard at the start of a pattern, and a `/' in a filename
|
|
can match wildcards. If no patterns are given, all files are
|
|
extracted.
|
|
.PP
|
|
In copy-pass mode,
|
|
.B cpio
|
|
copies files from one directory tree to another, combining the
|
|
copy-out and copy-in steps without actually using an archive.
|
|
It reads the list of files to copy from the standard input; the
|
|
directory into which it will copy them is given as a non-option
|
|
argument.
|
|
.PP
|
|
.B cpio
|
|
supports the following archive formats: binary, old ASCII, new
|
|
ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar.
|
|
The binary format
|
|
is obsolete because it encodes information about the files in a way
|
|
that is not portable between different machine architectures.
|
|
The old ASCII format is portable between different machine architectures,
|
|
but should not be used on file systems with more than 65536 i-nodes.
|
|
The new ASCII format is portable between different machine architectures
|
|
and can be used on any size file system, but is not supported by all
|
|
versions of
|
|
.BR cpio ;
|
|
currently, it is only supported by GNU and Unix System V R4.
|
|
The crc format is
|
|
like the new ASCII format, but also contains a checksum for each file
|
|
which
|
|
.B cpio
|
|
calculates when creating an archive
|
|
and verifies when the file is extracted from the archive.
|
|
The HPUX formats are provided for compatibility with HPUX's cpio which
|
|
stores device files differently.
|
|
.PP
|
|
The tar format is provided for compatibility with
|
|
the
|
|
.B tar
|
|
program. It can not be used to archive files with names
|
|
longer than 100 characters, and can not be used to archive "special"
|
|
(block or character devices) files.
|
|
The POSIX.1 tar format can not be used to archive files with names longer
|
|
than 255 characters (less unless they have a "/" in just the right place).
|
|
.PP
|
|
By default,
|
|
.B cpio
|
|
creates binary format archives, for compatibility with
|
|
older
|
|
.B cpio
|
|
programs.
|
|
When extracting from archives,
|
|
.B cpio
|
|
automatically recognizes which kind of archive it is reading and can
|
|
read archives created on machines with a different byte-order.
|
|
.PP
|
|
Some of the options to
|
|
.B cpio
|
|
apply only to certain operating modes; see the SYNOPSIS section for a
|
|
list of which options are allowed in which modes.
|
|
.SS OPTIONS
|
|
.TP
|
|
.I "\-0, \-\-null"
|
|
In copy-out and copy-pass modes, read a list of filenames terminated
|
|
by a null character instead of a newline, so that files whose names
|
|
contain newlines can be archived. GNU
|
|
.B find
|
|
is one way to produce a list of null-terminated filenames.
|
|
.TP
|
|
.I "\-a, \-\-reset-access-time"
|
|
Reset the access times of files after reading them, so that it does
|
|
not look like they have just been read.
|
|
.TP
|
|
.I "\-A, \-\-append"
|
|
Append to an existing archive. Only works in copy-out mode. The
|
|
archive must be a disk file specified with the
|
|
.I \-O
|
|
or
|
|
.I "\-F (\-\-file)"
|
|
option.
|
|
.TP
|
|
.I "\-b, \-\-swap"
|
|
In copy-in mode, swap both halfwords of words and bytes of halfwords
|
|
in the data. Equivalent to
|
|
.IR "\-sS" .
|
|
Use this option to convert 32-bit integers between big-endian and
|
|
little-endian machines.
|
|
.TP
|
|
.I "\-B"
|
|
Set the I/O block size to 5120 bytes. Initially the block size is 512
|
|
bytes.
|
|
.TP
|
|
.I "\-\-block-size=BLOCK-SIZE"
|
|
Set the I/O block size to BLOCK-SIZE * 512 bytes.
|
|
.TP
|
|
.I "\-c"
|
|
Use the old portable (ASCII) archive format.
|
|
.TP
|
|
.I "\-C IO-SIZE, \-\-io-size=IO-SIZE"
|
|
Set the I/O block size to IO-SIZE bytes.
|
|
.TP
|
|
.I "\-d, \-\-make-directories"
|
|
Create leading directories where needed.
|
|
.TP
|
|
.I "\-E FILE, \-\-pattern-file=FILE"
|
|
In copy-in mode, read additional patterns specifying filenames to
|
|
extract or list from FILE. The lines of FILE are treated as if they
|
|
had been non-option arguments to
|
|
.BR cpio .
|
|
.TP
|
|
.I "\-f, \-\-nonmatching"
|
|
Only copy files that do not match any of the given patterns.
|
|
.TP
|
|
.I "\-F, \-\-file=archive"
|
|
Archive filename to use instead of standard input or output. To use a
|
|
tape drive on another machine as the archive, use a filename that
|
|
starts with `HOSTNAME:'. The hostname can be preceded by a
|
|
username and an `@' to access the remote tape drive as that user, if
|
|
you have permission to do so (typically an entry in that user's
|
|
`~/.rhosts' file).
|
|
.TP
|
|
.I "\-\-force-local"
|
|
With
|
|
.IR \-F ,
|
|
.IR \-I ,
|
|
or
|
|
.IR \-O ,
|
|
take the archive file name to be a local file even if it contains a
|
|
colon, which would ordinarily indicate a remote host name.
|
|
.TP
|
|
.I "\-H FORMAT, \-\-format=FORMAT"
|
|
Use archive format FORMAT. The valid formats are listed below;
|
|
the same names are also recognized in all-caps. The default in
|
|
copy-in mode is to automatically detect the archive format, and in
|
|
copy-out mode is "bin".
|
|
.RS
|
|
.IP bin
|
|
The obsolete binary format.
|
|
.IP odc
|
|
The old (POSIX.1) portable format.
|
|
.IP newc
|
|
The new (SVR4) portable format, which supports file systems having
|
|
more than 65536 i-nodes.
|
|
.IP crc
|
|
The new (SVR4) portable format with a checksum added.
|
|
.IP tar
|
|
The old tar format.
|
|
.IP ustar
|
|
The POSIX.1 tar format. Also recognizes GNU
|
|
.B tar
|
|
archives, which are similar but not identical.
|
|
.IP hpbin
|
|
The obsolete binary format used by HPUX's cpio (which stores device files
|
|
differently).
|
|
.IP hpodc
|
|
The portable format used by HPUX's cpio (which stores device files differently).
|
|
.RE
|
|
.TP
|
|
.I "\-i, \-\-extract"
|
|
Run in copy-in mode.
|
|
.TP
|
|
.I "\-I archive"
|
|
Archive filename to use instead of standard input. To use a
|
|
tape drive on another machine as the archive, use a filename that
|
|
starts with `HOSTNAME:'. The hostname can be preceded by a
|
|
username and an `@' to access the remote tape drive as that user, if
|
|
you have permission to do so (typically an entry in that user's
|
|
`~/.rhosts' file).
|
|
.TP
|
|
.I \-k
|
|
Ignored; for compatibility with other versions of
|
|
.BR cpio .
|
|
.TP
|
|
.I "\-l, \-\-link"
|
|
Link files instead of copying them, when possible (usable only with the
|
|
.I \-p
|
|
option).
|
|
.TP
|
|
.I "\-L, \-\-dereference"
|
|
Dereference symbolic links (copy the files that they point to instead
|
|
of copying the links).
|
|
.TP
|
|
.I "\-m, \-\-preserve-modification-time"
|
|
Retain previous file modification times when creating files.
|
|
.TP
|
|
.I "\-M MESSAGE, \-\-message=MESSAGE"
|
|
Print MESSAGE when the end of a volume of the backup media (such as a
|
|
tape or a floppy disk) is reached, to prompt the user to insert a new
|
|
volume. If MESSAGE contains the string "%d", it is replaced by the
|
|
current volume number (starting at 1).
|
|
.TP
|
|
.I "\-n, \-\-numeric-uid-gid"
|
|
In the verbose table of contents listing, show numeric UID and GID
|
|
instead of translating them into names.
|
|
.TP
|
|
.I " \-\-no-absolute-filenames"
|
|
In copy-in mode, create all files relative to the current directory,
|
|
even if they have an absolute file name in the archive.
|
|
.TP
|
|
.I " \-\-no-preserve-owner"
|
|
In copy-in mode and copy-pass mode, do not change the ownership of the
|
|
files; leave them owned by the user extracting them. This is the
|
|
default for non-root users, so that users on System V don't
|
|
inadvertently give away files.
|
|
.TP
|
|
.I "\-o, \-\-create"
|
|
Run in copy-out mode.
|
|
.TP
|
|
.I "\-O archive"
|
|
Archive filename to use instead of standard output. To use a tape
|
|
drive on another machine as the archive, use a filename that starts
|
|
with `HOSTNAME:'. The hostname can be preceded by a username and an
|
|
`@' to access the remote tape drive as that user, if you have
|
|
permission to do so (typically an entry in that user's `~/.rhosts'
|
|
file).
|
|
.TP
|
|
.I " \-\-only-verify-crc"
|
|
When reading a CRC format archive in copy-in mode, only verify the
|
|
CRC's of each file in the archive, don't actually extract the files.
|
|
.TP
|
|
.I "\-p, \-\-pass-through"
|
|
Run in copy-pass mode.
|
|
.TP
|
|
.I "\-\-quiet"
|
|
Do not print the number of blocks copied.
|
|
.TP
|
|
.I "\-r, \-\-rename"
|
|
Interactively rename files.
|
|
.TP
|
|
.I "\-R [user][:.][group], \-\-owner [user][:.][group]"
|
|
In copy-out and copy-pass modes, set the ownership of all files created
|
|
to the specified user and/or group. Either the user or the group, or
|
|
both, must be present. If the group is omitted but the ":" or "."
|
|
separator is given, use the given user's login group. Only the
|
|
super-user can change files' ownership.
|
|
.TP
|
|
.I "\-\-sparse"
|
|
In copy-out and copy-pass modes, write files with large blocks of zeros
|
|
as sparse files.
|
|
.TP
|
|
.I "\-s, \-\-swap-bytes"
|
|
In copy-in mode, swap the bytes of each halfword (pair of bytes) in the
|
|
files.
|
|
.TP
|
|
.I "\-S, \-\-swap-halfwords"
|
|
In copy-in mode, swap the halfwords of each word (4 bytes) in the
|
|
files.
|
|
.TP
|
|
.I "\-t, \-\-list"
|
|
Print a table of contents of the input.
|
|
.TP
|
|
.I "\-u, \-\-unconditional"
|
|
Replace all files, without asking whether to replace existing newer
|
|
files with older files.
|
|
.TP
|
|
.I "\-v, \-\-verbose"
|
|
List the files processed, or with
|
|
.IR \-t ,
|
|
give an `ls \-l' style table of contents listing. In a verbose table
|
|
of contents of a ustar archive, user and group names in the archive
|
|
that do not exist on the local system are replaced by the names that
|
|
correspond locally to the numeric UID and GID stored in the archive.
|
|
.TP
|
|
.I "\-V \-\-dot"
|
|
Print a "." for each file processed.
|
|
.TP
|
|
.I "\-\-version"
|
|
Print the
|
|
.B cpio
|
|
program version number and exit.
|