本マニュアルは、GNU 版の
cpio
について説明します。
cpio
は、cpio 形式もしくは tar 形式のアーカイブファイルに格納されたファイルを
取り出したり、その逆を行ったりします。アーカイブファイルの中には、ファ
イルそのものの情報の他に、それら個々のファイルについての所有者や属性その
他の情報を格納してあります。アーカイブファイルは、ディスク上のファイルで
も、テープ上に格納してあっても、もしくはパイプであっても構いません。
cpio
は、3つの操作モードを持っています。
コピーアウトモードでは、
cpio
はファイルをアーカイブファイルにコピーします。cpio は、標準入力からファ
イル名のリストを1行ずつ読み込み、標準出力にそのファイルのアーカイブを書
き出します。ファイルリストの作成には、
find
コマンドが多く使われます。
find
コマンドに、-depth オプションを付加してやって、ディレクトリの属性によっ
て読み込み不可であったり、検索が出来なかったりする問題を最小限に抑えるよ
うにして下さい。
コピーインモードでは、
cpio
はファイルをアーカイブファイル、もしくはアーカイブの内容のリストからコ
ピーします。cpioは、アーカイブを標準入力から読み込みます。オプションで
ないコマンドラインの引数は、すべてシェルによって展開される文字列として
解釈されます。これは、アーカイブ内のファイル名が、この文字列によって指
定されるパターンにマッチする場合にのみそのファイルを展開することを意味
します。また、シェルでの解釈にかかわらず、ファイル名の先頭に`.'を含む場
合には、パターンの最初にワイルドカードがある場合にパターン一致します。
そして、ファイル名に`/'を含む場合にも、ワイルドカードによる一致が期待
できます。パターンが指定されない場合には、全てのファイルが展開対象とな
ります。
コピーパスモードでは、
cpio
はファイルをあるディレクトリから別のディレクトリにコピーします。実際に
は、アーカイブファイルを用いて、コピーアウトモードとコピーインモードを
組み合わせて実行するような形になります。
cpioは、コピーするファイルリストを標準入力から受けとります。これらのファ
イルのコピー先のディレクトリについては、オプション以外の引数で与えられ
ます。
cpio
は、
binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar,
POSIX.1 tar の各形式のアーカイブフォーマットをサポートします。
binaryフォーマットは、異なるマシンアーキテクチャの間でアーカイブフォー
マットが異なるため、ほとんど使われません。
old ASCIIフォーマットは、異なるマシンアーキテクチャの間でのアーカイブの
互換性は保たれますが、65536 個を超えるi-nodesを備えるシステムで使われる
ことを想定してません。
new ASCIIフォーマットは、異なるマシンアーキテクチャの間でのアーカイブの
互換性は保たれます。old ASCIIフォーマットのように、ファイルシステムのサ
イズの制限はありませんが、全てのバージョンの
cpio
でこの形式をサポートするわけではありません。現状でこのフォーマットをサ
ポートするcpioは、GNU cpio と、SVR4のcpioのみです。
crcフォーマットは、new ASCIIフォーマットと似てますが、アーカイブ作成時に
cpio
が各ファイルについてチェックサムを計算し、アーカイブ内に含めるところが
異なります。このチェックサムは、アーカイブからファイルを取り出す時のベ
リファイに使用されます。
HPUXフォーマットは、デバイスファイルを格納する形式が他のcpioと異なる
HPUXのcpio形式との互換性を持たせるために存在します。
tarフォーマットは、
tar
との互換性を持たせるために存在します。tarフォーマットでは、アーカイブさ
れるファイル名としては、100文字を超えるものは使えません。そして、ブロック
デバイス特殊ファイルやキャラクタデバイス特殊ファイルをアーカイブするこ
とも出来ません。
POSIX.1 tarフォーマットは、アーカイブされるファイル名としては、255文字を
超えるものは使えません。(ちょうどその場所に、/が含まれる場合は除きます)。
デフォルトでは、
cpio
は
古い
cpio
との互換性のためにバイナリフォーマットアーカイブを作成します。
アーカイブを展開する場合には、
cpio
は自動的に読み込まれたアーカイブの種類、そして異なるバイトオーダのマシンで
作成されたかどうかを判断します。
ある
cpio
のオプションは、操作モードを指定します。どのオプションがどのモードに対応す
るかについては、形式のセクションを見て下さい。