cpio - cpio アーカイブのフォーマット

関連情報

cpio コマンドで、ファイルのバックアップやリストアが可能です。 cpio コマンドは、短縮バイナリー・フォーマット・ヘッダーまたは ASCII フォーマット・ヘッダー のいずれに対しても 読み取りと書き込みを行います。 tar コマンドは、UNIX システムからの オリジナル TAR フォーマットまたは POSIX 1003.1 標準で定義さ れる USTAR フォーマットのいずれかで作成されたヘッダーを読み書きします。

pax コマンドは、任意の cpio フォーマットで作成されたヘッダーを読み書きします。

説明

cpio アーカイブは、1 つ以上の メンバー・ファイルを連結したもので構成されています。各メンバー・ファイルには、ヘッダーが含まれ、任意で、ヘッダーに指示されている通りに ファイルの内容が続きます。アーカイブの終わりは、TRAILER!! という名前の (空) ファイルを記述する 別のヘッダーによって示されます。

cpio アーカイブには 2 つのタイプがあり、これらはヘッダーのスタイルが違うだけです。
  • ASCII アーカイブは、全体が出力可能なヘッダー情報を持っており、そのため、アーカイブされるファイルも ASCII ファイルである場合は、アーカイブ全体が ASCII になります。
  • デフォルトでは、cpio は アーカイブをバイナリー・ヘッダーで書き込みます。しかし、バイナリー・アーカ イブ・ファイルは、通常、他のオペレーティング・システムに移植できないため、これらのアーカイブ・ファイルは使用しないでください。

ASCII アーカイブ・ヘッダーの情報は、固定幅、8 進数 (基数 8)、左側はゼロで埋められて格納されます。表 1 は、ASCII ヘッダー内の情報の 順序とフィールド幅を示しています。

表 1. アーカイブ・ファイル: ASCII ヘッダー
フィールド幅 フィールド名 意味
6 magic マジック・ナンバー 070707
6 dev ファイルのあるデバイス
6 ino ファイルの i ノード番号
6 mode ファイル・モード
6 uid 所有者のユーザー ID
6 gid 所有者のグループ ID
6 nlink ファイルへのリンクの数
6 rdev スペシャル・ファイルに対するデバイス・メジャー/マイナー
11 mtime ファイルの変更時刻
6 namesize ファイル名の長さ
11 filesize ファイルの長さ

ヘッダー情報の後に、namesize バイトのパス名が 格納されます。namesize には、パス名の終わり のヌル・バイトが含まれます。この後に、filesize バイトのファイルの内容が記録されます。

バイナリー・ヘッダーには同じ情報が、次のように 2 バイト (短) 整数 および 4 バイト (長) 整数で含まれています。
バイト
フィールド名
2
magic
2
dev
2
ino
2
mode
2
uid
2
gid
2
nlink
2
rdev
2
mtime
2
namesize
2
filesize

ヘッダー情報の後には、最も近い 2 バイト境界に 切り上げられた namesize のファイル名が置かれます。次に、ASCII アーカイブの場合と同じに、ファイルの内容が現れます。 バイナリー・フォーマット内の 2 バイトおよび 4 バイト整数の バイトの配列はマシンによって異なるので、このフォーマットの移植性は簡単には保証できません。

関連情報

compresscpiopax、および tar コマンド