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 です。
フィールド幅 | フィールド名 | 意味 |
---|---|---|
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 フォーマットのフィールドに一致します。
フィールド幅 | フィールド名 | 意味 |
---|---|---|
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 | ファイル名の接頭部 |
圧縮された tar アーカイブは、14 ビット の compress コマンドへ渡される、対応するアーカイブと同等です。
cpio および tar コマンド。