Cpio
From Wikipedia, the free encyclopedia
- The correct title of this article is cpio. The initial letter is shown capitalized due to technical restrictions.
cpio is both the name of a binary utility, and a form of digital archive.
Contents |
A cpio archive is a stream of files and directories in a single archive, and often ends with a .cpio file extension. The archive has header information that allows for an application such as the GNU cpio tool to extract the files and directories into a file system. The header of a cpio archive also contains information such as the file name, time stamp, owner and permissions.
The cpio archive is similar in function to that of a tar archive, and was designed to store backups onto a tape device in a contiguous manner.
The cpio utility was standardized in POSIX.1-1988. It was dropped from later revisions, starting with POSIX.1-2001 due to its 8GB filesize limit. The POSIX standardized pax utility can be used to read and write cpio archives instead.
The GNU cpio application is a common tool that can be used to put information into a cpio or tar archive. The cpio application is free software, and is available from the GNU web site.
If you wanted to archive an entire directory tree, the find command can provide the file list to cpio:
% find . -print -depth | cpio -ov > tree.cpio
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.
% find . -depth -print0 | cpio --null -pvd new-dir
To extract files from a cpio archive, pass the archive to cpio as its standard input.
% cpio -id < cpiofile
The -i flag indicates that cpio is reading in the archive to extract files, and the -d flag tells cpio to construct directories as necessary. You can also use the -v flag to have file names listed as files are extracted.
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. The following example extracts etc/fstab from the archive (the format of the archive contents should be verified with cpio -l first to verify how path is stored) :
% cpio -id etc/fstab < cpiofile
History: GNU Manifesto • GNU Project • Free Software Foundation (FSF)
GNU licenses: GNU General Public License (GPL) • GNU Lesser General Public License (LGPL) • GNU Free Documentation License (FDL)
Software: GNU operating system • bash • GNU Compiler Collection • Emacs • GNU C Library • Coreutils • GNU build system • other GNU packages and programs
Speakers: Robert J. Chassell • Loïc Dachary • Ricardo Galli • Georg C. F. Greve • Federico Heinz • Bradley M. Kuhn • Eben Moglen • Richard Stallman • Len Tower