TAR書庫 (.tar)
POSIX.1-1988 標準Tape Archive(TAR)はUnixやLinuxで広く使われるパッケージ形式です。ファイル、ディレクトリ、選択したファイルシステムのメタデータを非圧縮ストリームにまとめます。
ZIP を TAR に変換
無料のブラウザ内 ZIP から TAR へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してTARファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してTARファイルを識別します:
16進数シグネチャ(オフセット257):
75 73 74 61 72ASCII表現: ustar
標準化: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)
技術仕様
| コンテナアーキテクチャ | 512バイトブロックの列。512バイトのファイルヘッダーに続き、512バイト単位に切り上げたファイルデータを格納し、2つのゼロブロックで終了 |
| 圧縮 | 非圧縮アーカイブコンテナ(gzip、bzip2、xz、zstdへパイプで渡す設計) |
| バイトエンディアン | 8進数のASCII文字列フィールド。数値拡張部はビッグエンディアン |
| 色空間 | 該当なし(アーカイブコンテナ) |
| チャンネルと構造 | Unixのファイルディレクトリツリー、シンボリックリンク、ハードリンク、キャラクター/ブロックデバイス、FIFOパイプ |
| 最大寸法 | 従来のustarでは上限8 GB、現行PAX形式では実質的に上限なし |
| 透過性 | POSIXファイル権限、所有者UID/GID、アクセス時刻、拡張属性を完全に保持 |
| ストリーミングとプログレッシブ | 逐次処理を前提としたストリーム指向設計。物理磁気テープドライブへ直接書き込み可能 |
技術比較表:TARと競合製品
| 技術属性 | TAR (現在) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| ネイティブ圧縮 | なし(純粋なパッケージングコンテナ) | 内蔵Deflate圧縮 | 内蔵LZMA/LZMA2圧縮 | なし(純粋なパッケージングコンテナ) |
| Unixパーミッションの保持 | 選択したPOSIX属性、シンボリックリンク、UID/GID | 制限付きのUnixパーミッションサポート | 基本パーミッションの保持 | 選択したPOSIX属性 |
| ストリーミング抽出 | パイプからの完全なストリーミング抽出 | EOFでのセントラルディレクトリの読み取りが必要 | 終了ヘッダーの読み取りが必要 | 完全なストリーミング抽出 |
| ファイルへのランダムアクセス | 遅い(線形シーケンシャルスキャン) | インスタント(セントラルディレクトリールックアップ) | 中程度(インデックスルックアップ) | 遅い(線形シーケンシャルスキャン) |
一般的な破損モードと16進数リカバリガイド
抽出エラー:「tar: 次のヘッダーにスキップしています」または「Xに単一のゼロブロックがあります」。
根本原因: 512バイトブロックの配置の破損、またはストリームの早期終了。
復旧: 破損したブロックを無視するには「tar -i」で抽出し、またはFile2File.app Tar Toolで修復します。
セキュリティ分析とパーサー攻撃ベクトル
TAR抽出ツールは、パストラバーサル攻撃による任意のファイルの上書きを防ぐために、ファイルパスをサニタイズする必要があります。
既知の攻撃ベクター
- 抽出中に重要なシステムファイルを上書きする「スリップ」型のディレクトリトラバーサル(例:'../etc/passwd')。
- システムディレクトリへのシンボリックリンクを作成し、その後にファイル書き込みを行うシンボリックリンク競合状態。
- 循環ハードリンクループによるサービス拒否。
防御的ベストプラクティス: アーカイブのファイルパスを厳格にサニタイズし、親ディレクトリの参照('..')を含むエントリをすべて拒否します。
歴史的背景とマイルストーン
主なメリット
- TARはUnixのパーミッション、シンボリックリンク、所有者IDを記録できます。特にWindowsや異なる権限規則のシステムで展開する場合、展開ツールがこれらの項目を復元するか確認してください。
- テープ指向のストリーミング設計:ファイルの末尾にシークすることなく、ネットワークパイプから直接抽出可能。
- Linuxのパッケージマネージャーやコンテナツールは、ファイルをTARアーカイブで配布することがよくあります。多くは.tar.gzまたは.tar.zstとして圧縮されています。
技術的な制限とデメリット
- ネイティブ圧縮なし:非圧縮の.tarファイルは、元ファイルの合計サイズとほぼ同じ大きさになります。
- ランダムアクセスの速度が遅い:巨大なtarballの中央から単一のファイルを抽出するには、最初からスキャンする必要があります。
- レガシーのustarヘッダーは100文字を超えるファイル名を切り捨てていました(現代のPAX/GNU tarで解決済み)。
興味深い技術トリビア
- マジックバイト「ustar」は、すべての512バイトヘッダーブロック内のバイトオフセット257に位置しています。
- TARはもともと、9トラックの磁気リール式テープドライブを物理的に制御するために開発されました。
- DockerおよびOCIコンテナイメージは、ルートファイルシステムの差分を含む標準.tarアーカイブを文字通り積み重ねたものです。
よくある技術的な質問
.tarファイルが圧縮されていないのはなぜですか?
TARは単なるアーカイバー(複数のファイルを1つのファイルにまとめるもの)であり、それ自体では圧縮を行いません。圧縮するには、gzipと組み合わせて.tar.gzファイルを作成します。
ustarとGNU tarの違いは何ですか?
Ustarは100文字のファイル名制限がある1988年のPOSIX標準であり、GNU tarは無制限のパス長とスパースファイルをサポートする拡張形式です。
Windowsで.tarファイルを開くにはどうすればよいですか?
Windows 10および11では、コマンドライン(「tar -xf file.tar」)経由でtarがネイティブサポートされています。または、File2File.appを使用してウェブブラウザ上で直接視覚的に抽出することもできます。
関連するTAR変換ペア
ZIPアーカイブからTARアーカイブへの変換では、圧縮されたファイルコンテナをUnix環境に適した非圧縮のテープアーカイブ形式に変換します。
TARアーカイブからZIPアーカイブへの変換では、非圧縮のUnixコンテナを広く利用されている圧縮ファイル形式に変換します。
TAR アーカイブを GZIP アーカイブに変換することで、ロスレスの DEFLATE アルゴリズムを使用して非圧縮のファイルコレクションを単一の圧縮ストリームにまとめ、ファイルサイズを劇的に削減します。
GZIP圧縮されたTARアーカイブ(.tar.gzや.tgzなど)からTARデータを取り出します。