Tar Gzip アーカイブ (.tar.gz)
POSIX.1 標準Tar Gzip(.tar.gz、.tgzとも呼ばれます)は、TARアーカイブとGzip圧縮を組み合わせた形式で、ソフトウェア配布やファイルのパッケージ化によく使われます。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してTAR.GZファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してTAR.GZファイルを識別します:
16進数シグネチャ(オフセット0):
1F 8B 08ASCII表現: ..\x08
標準化: POSIX.1 ustar (RFC 1952 gzip wrapped)
技術仕様
| コンテナアーキテクチャ | POSIX ustar / GNU tarアーカイブストリームをRFC 1952 Gzip圧縮コンテナに格納 |
| 圧縮 | TARへのシリアライズ後にDEFLATE圧縮を行う2段階のパッケージ化 |
| バイトエンディアン | 8進数のPOSIX tarブロックを包むリトルエンディアンのgzipエンベロープ |
| 色空間 | 該当なし(アーカイブコンテナ) |
| チャンネルと構造 | 複数ファイルのUnixディレクトリツリー、シンボリックリンク、ファイル所有者、権限ビット |
| 最大寸法 | ストリーミングアーカイブのサイズに上限なし |
| 透過性 | ファイルシステム構造とデータをビット単位で完全に保持する可逆圧縮 |
| ストリーミングとプログレッシブ | パイプを使ったエンドツーエンドのストリーミングに対応。1回の処理で展開と抽出を同時に実行 |
技術比較表:TAR.GZと競合製品
| 技術属性 | TAR.GZ (現在) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Unix パーミッション | アーカイブと展開ツールが対応するPOSIXメタデータを保存 | 制限あり / 失われることが多い | 基本属性のみ保持 | 展開ツールが対応する選択されたPOSIXメタデータ |
| 圧縮率 | 中程度 (Gzip DEFLATE) | 中程度 (ZIP DEFLATE) | 非常に高い (LZMA2) | 高い (Bzip2 BWT) |
| 展開速度 | 高速 (~300 MB/s) | 高速 (~300 MB/s) | 中程度 (~100 MB/s) | 低速 (~40 MB/s) |
| Linux エコシステム標準 | オープンソース界で広く使われる既定形式 | コンシューマー向けデスクトップのデフォルト | Windows 愛好家の定番 | レガシー Linux のソースリリース |
一般的な破損モードと16進数リカバリガイド
コマンドラインに「gzip: stdin: invalid compressed data--format violated」と表示される。
根本原因: Gzip カプセル内のバイト化け、またはダウンロードの途中切れ。
復旧: File2File.app アーカイブ抽出ツールまたは「tar -izxf broken.tar.gz」を使用して、部分的な復旧を試みる。
セキュリティ分析とパーサー攻撃ベクトル
TAR.GZ アーカイブは、不注意に展開すると、圧縮爆弾とパストラバーサル攻撃の両方のリスクを合わせ持ちます。
既知の攻撃ベクター
- 小さな .tar.gz ファイルが何テラバイトものゼロに膨れ上がる、Zip 爆弾スタイルの増幅。
- 特権ファイルを上書きするパストラバーサル(例: '../../root/.ssh/authorized_keys')。
- root 権限での展開時に不正なデバイスノードが作成される。
防御的ベストプラクティス: 特権を持たないユーザーとしてアーカイブを抽出し、ディレクトリトラバーサルに対してすべての宛先ファイルパスをサニタイズします。
歴史的背景とマイルストーン
主なメリット
- ソフトウェアプロジェクトは、ディレクトリ構造をTARでまとめ、ストリームをGzipで圧縮できるため、ソースアーカイブを.tar.gzとして公開することがよくあります。
- .tar.gzのTAR層には、パーミッションやシンボリックリンクを記録できます。展開時に復元されるかどうかは展開ツールと対象OSによって異なります。別のプラットフォームで展開した後は、パーミッションを確認してください。
- 完全なストリーミング対応:一時ファイルをディスクに書き込むことなく、ネットワークパイプ経由でダウンロード、解凍、展開が可能。
技術的な制限とデメリット
- 単一のファイルを抽出するには、そのファイルの場所までアーカイブ全体を解凍する必要がある。
- .tar.xz や .tar.zst などの現代的な代替形式と比較して圧縮率が低い。
- 古いWindowsでは、広くサポートされているZIP形式より扱いにくい場合があります。
興味深い技術トリビア
- 8.3形式のファイル名制限がある MS-DOS システムでは、「.tar.gz」は「.tgz」に短縮された。
- 「npm install」を実行するたびに、npm はバックグラウンドで .tgz (tar.gz) パッケージをダウンロードして展開している。
- Linux ユーザーの間では、tar.gz ファイルを展開するコマンドを覚えるための語呂合わせとして、ニーモニック「eXtract Ze File」:tar -xzf file.tar.gz が広く知られている。
よくある技術的な質問
.tar.gzと.zipの違いは何ですか?
.zipは中央ディレクトリとともにファイルを保存し、.tar.gzはTARストリームをGzipで圧縮します。メタデータが保持されるかどうかは、アーカイブと展開設定によって異なります。
.tgzは.tar.gzと同じですか?
はい。.tgzは.tar.gzの単なる3文字の省略形であり、元々はDOSのような8.3形式の短いファイル名制限を持つオペレーティングシステムのために作成されました。
Windowsで.tar.gzファイルを抽出するにはどうすればよいですか?
WinRARや7-Zipをインストールすることなく、File2File.appを使用してウェブブラウザ上で直接.tar.gzファイルを抽出できます。