オラクルはかつて同社のソフトウェアの大半をcpioフォーマットのアーカイブで頒布していたこともある。
当初のプログラム設計により、cpioとそのアーカイブ・ファイル・フォーマットは何度も仕様変更されており、時に互換性の無い変更も加えられてしまっている。最も有名な仕様改変は、アーカイブ・ファイルのメタ情報がバイナリ・フォーマットからASCIIベース表現(char)に変わったことである(ただし操作用オプション(--format)で切り替えることで両フォーマットに対応している実装もある)。 cpioはテープ・デバイス上で連続的にバックアップ・ファイル・アーカイブを保存できるよう設計されているが、tarと同じくアーカイブ・コンテンツの圧縮は行わない。このため適宜gzipやその他外部圧縮プログラムを利用して、cpioから生成されたアーカイブに圧縮を掛ける(この時、.cpgzまたは.cpio.gzという拡張子をファイル名の末尾に付す場合がある)。 cpioを-oコマンドライン・フラグと共に起動しコピーアウト(copy-out)・オペレーション・モードでアーカイブを作成する場合、標準入力を通してファイル/ディレクトリ・パス名を読み取り、標準出力にバイト・ストリームとしてアーカイブを書き出す。このため、cpioはfindプログラムのようなアーカイブ対象ファイルの一覧を生成する他のユーティリティと同時に利用するのが一般的である。以下のコマンドを実行すると、findコマンドを利用しカレント・ディレクトリの全ファイルのリストを標準出力経由でcpioに渡し、cpioはディレクトリ・ツリーごと完全にアーカイブする(このコマンド実行中、cpioはユーザにプロンプトを返すことなく直ちに処理を実行する。以下同様)。$ find . -depth -print 。cpio -o > archive.cpio cpioが生成するアーカイブはファイルとディレクトリのストリームを連続的に単一のアーカイブに収めたものである。アーカイブはファイルメタ情報を含むヘッダ・セクション毎にデータを分離できる。そのようなファイルメタ情報とは、ファイル名、inode番号、ファイル所有者、パーミッションそしてタイムスタンプである。cpioはアーカイブのヘッダ情報に従いファイルやディレクトリをファイルシステム上に展開する(オプションで無視することもできる)。慣習的に、cpioアーカイブはしばしば拡張子.cpioをアーカイブ・ファイル名の末尾に持つ。 cpioは、-iオプションを付してコピーイン(copy-in)モードで起動した場合、標準入力からアーカイブを読み取り、ファイルシステム上にアーカイブ済みファイルを再生成する。次に示すコマンド例を実行するとその様子が把握できる。$ cpio -id < archive.cpio 上記の-dフラグはcpioに必要に応じて(すなわち、存在しなければ)ディレクトリを作成するよう指示する。また抽出されたファイル名を出力する-vフラグもある。 オプションを除く他全てのコマンドライン引数にはシェルライクなグロブパターンが利用できる。1つかそれ以上のパターンにマッチするファイル名を持つファイルのみをアーカイブから取り出しコピーできる。次の例は、アーカイブから"etc/fstab 展開前にcpioアーカイブ内に含まれるファイルの一覧を出力するには、$ cpio -it < archive.cpio cpioアーカイブはファイルが相対パスだけではなく絶対パスで格納される(例えば、/bin/ls vs. bin/ls)場合があるので、事前にファイル一覧をチェックすることは有用である。 cpioは-pオプションを付すことで、第3のファイルコピー 次のコマンド例は、カレント・ディレクトリを起点にファイルシステム上の別のディレクトリ(ディレクトリ・パスは new-path)にカレント・ディレクトリ・ツリーごとコピーし、ファイル・パーミッションを保存(-m)、必要に応じてディレクトリを作成(-d)、ユーザにプロンプトすることなく無条件で存在するファイルを上書き(-u)し、そして標準出力に処理済ファイルの一覧を出力する(-v)。cpioは標準入力からはコピー元であるカレント・ディレクトリ・ツリーの全ファイルのパス名リストを読み込んでいる。$ find . -depth -print 。cpio -pdumv new-path cpio形式はPOSIX.1-1988にて標準化されているが、cpioユーティリティ自体は標準化されていない。POSIX標準ではcpioユーティリティの代替ソフトウェアとしてpaxユーティリティがcpioアーカイブの読み書きに利用可能と規定されている。 ほぼ全てのLinuxディストリビューションはGNUプロジェクト版のcpioを提供している[5]。FreeBSDとmacOSではBSDライセンス下にあるcpioとlibarchive
操作とアーカイブ・フォーマット
アーカイブの作成
展開
リスト
コピー
POSIX標準
実装
脚注^ “ ⇒System Administration Guide: Devices and File Systems”. download.oracle.com. 2011年11月5日閲覧。 “You can use the cpio (copy in and out) command to copy individual files,[...]”
^ Peek, J; O'Reilly, T; Loukides, M. (1997). Unix Power Tools. p. 38.13. O'Reilly & Associates, Inc. ISBN 1-56592-260-3.
^ “mkinitcpio is the next generation of initramfs creation. - ArchWiki
^ “ ⇒initramfs-tools”. Debian (2011年2月27日). 2011年5月28日閲覧。
^ “ ⇒Cpio”. GNUプロジェクト (2011年3月10日). 2011年5月28日閲覧。