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

説明

tar は、UNIX システムからの オリジナル TAR フォーマットまたは POSIX 1003.1 標準で定義さ れる USTAR フォーマットのいずれかで作成されたヘッダーを読み書きします。

pax コマンドは、どのような tar フォーマットで作 成されたヘッダーも読み書きします。

tar コマンドは、古い UNIX 互換の tar フォーマットと 拡張 USTAR フォーマットの両方をサポートします。拡張 USTAR フォーマットを使用可能にするには、–X オプションを 使用する必要があります。拡張 USTAR フォーマットは、より多くの情報を保管することができ、より長いパス名をサポートします。ポータブルでは ない OS390 フォーマット (-S オプション) もあり、これでも追加のファイル属性および長いパス名のストリングを使用できます。

tar アーカイブは、いずれのフォーマットにおいても、1 つまたは複数の ブロックから構成され、これらはメンバー・ファイルを表すのに使用 されます。各ブロックは 512 バイトで、tar–b オプションを使用 することにより、これらブロックをいくつ同時に読み取るまたは書き込む (あるいは、両方) かを指示することができます。

各メンバー・ファイルは、ヘッダー・ブロックで構成されており、その後にファイル内容を 含むブロックが 1 つ以上続くことも、まったく続かないこともあります。アーカイブの終了 は、2 進ゼロで埋められた 2 つのブロックで示されます。ヘッダーの中の未使用スペースは 、2 進ゼロのままになります。

ブロックのヘッダー情報は、出力可能な ASCII フォーマットで格納されるため 、tar アーカイブは異なる環境へ容易に移植することができます。アーカイブのファイル内容がすべて ASCII の場合は、アーカイブ全体 が ASCII です。

表 1 は、ファイルのヘッダー・ブロックの UNIX フォーマットを示して います。
表 1. アーカイブ・ファイル: UNIX 互換フォーマット
フィールド幅 フィールド名 意味
100 name ファイルの名前
8 mode ファイル・モード
8 uid 所有者のユーザー ID
8 gid 所有者のグループ ID
12 size ファイルの長さ (バイト)
12 mtime ファイルの変更時刻
8 chksum ヘッダーのチェックサム
1 link リンクの標識
100 linkname リンク・ファイルの名前

tar は、magic フィールドにヌル終了ストリング USTAR が 存在することにより USTAR フォーマットが使用されていると判別します。magic フィールドの 前のフィールドは、typeflag がリンク・フィールドに置き換わったことを除き、すべて UNIX フォーマットのフィールドに一致します。

表 2. アーカイブ・ファイル: USTAR フォーマット
フィールド幅 フィールド名 意味
100 name ファイルの名前
8 mode ファイル・モード
8 uid 所有者のユーザー ID
8 gid 所有者のグループ ID
12 size ファイルの長さ (バイト)
12 mtime ファイルの変更時刻
8 chksum ヘッダーのチェックサム
1 typeflag ファイルのタイプ
100 linkname リンク・ファイルの名前
6 magic USTAR 標識
2 version USTAR バージョン
32 uname 所有者のユーザー名
32 gname 所有者のグループ名
8 devmajor デバイス・メジャー番号
8 devminor デバイス・マイナー番号
155 prefix ファイル名の接頭部

ヘッダー・ファイルの説明

ヘッダーにおいては、
  • name フィールドは、アーカイブ対象ファイルの名前 を含んでいます。USTAR フォーマットのアーカイブでは、接頭部フィールドの値が 非ヌルであれば、それが name フィールドの先頭に付けられて 、100 文字よりも長い名前を可能にします。
  • magicuname、および gname フィールドは ヌル終了文字ストリングです。
  • namelinkname、および prefix フィールド は、これらのフィールドの全体が名前を格納するのに使用されない (すなわち、最後の文字がヌルでない) 限り、ヌル終了します。
  • 他のすべてのフィールドは、ASCII で、ゼロで埋められた 8 進数の数字です。これらの番号には、sizemtime、および version フィールド を除いて、末尾のヌルが入ります。
  • prefix は、ファイル名が 100 文字を超えなければ、ヌルです。
  • size フィールドは、ヘッダーがリンクを記述する場合は、ゼロです。
  • chksum フィールドは、ヘッダーにおけるすべてのバイトの チェックサムで、chksum フィールドそれ自体はすべてブランクであることを前提としています。
  • USTAR では、typeflag フィールドは、古い tar フォーマットの link フィールドに対して互換性を持つ拡張です。以下の値が認識されます。
    フラグ
    ファイル・タイプ
    0 またはヌル
    正規ファイル
    1
    すでにアーカイブされた他のファイルに対するリンク
    2
    シンボリック・リンク
    3
    キャラクター・スペシャル・ファイル
    4
    ブロック・スペシャル・ファイル (サポートされません)
    5
    ディレクトリー
    6
    FIFO スペシャル・ファイル
    7
    予約済み
    S
    z/OS 拡張 USTAR 特殊ヘッダー
    T
    z/OS 拡張 USTAR 特殊ヘッダー要約 (S および T は z/OS の拡張機能です。詳細は、z/OS 拡張 USTAR サポートを参照してください。)
    A–Z
    カスタム使用のために使用できる
  • USTAR フォーマットでは、uname および gname のフィールド は、それぞれ、ファイルの所有者およびグループの名前を含んでいます。

圧縮された tar アーカイブは、14 ビット の compress コマンドへ渡される、対応するアーカイブと同等です。

関連情報

cpio および tar コマンド。