The Full Wiki

Cpio: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


(Redirected to cpio article)

From Wikipedia, the free encyclopedia

cpio is a binary file archiver and a file format. The cpio software utility was meant as a tape archiver that was originally part of PWB/UNIX, and that was also part of UNIX System III and UNIX System V. However, the use of its Research Unix counterpart, tar, and the freely available versions thereof, are widely considered to be a better solution.[1] cpio's use by the RPM Package Manager, the Linux kernel 2.6 series' initramfs, and Apple's "pax" installer archives continues to make cpio an important archive format.


cpio archive

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. Like the Tar format, CPIO archives are often compressed using Gzip and distributed as .cpgz (or .cpio.gz) files.

Oracle distributes a large amount of its software in the cpio format.

POSIX and cpio

The cpio utility was standardized in POSIX.1-1988. It was dropped from later revisions, starting with POSIX.1-2001 due to its 8 GB filesize limit. The POSIX standardized pax utility can be used to read and write cpio archives instead.


Most Linux distributions provide GNU version of cpio[2]. FreeBSD and Mac OS X use BSD-licensed cpio provided with libarchive[3].


Example use


If you wanted to archive an entire directory tree, the find command can provide the file list to cpio:

% find . -depth -print | 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.
Warning: This will overwrite without prompting.

% 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 option command line arguments are shell-like 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

See also

Cited references

  1. ^ Peek J, O'Reilly T, Loukides M. 1997. Unix Power Tools. O'Reilly & Associates, Inc. ISBN 1-56592-260-3.
  2. ^
  3. ^

External links


Got something to say? Make a comment.
Your name
Your email address