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)
技術仕様
| コンテナアーキテクチャ | Sequence of 512-byte blocks: 512-byte file header followed by file data rounded up to 512 bytes, ending with two zero blocks |
| 圧縮 | Uncompressed archive container (designed to be piped into gzip, bzip2, xz, or zstd) |
| バイトエンディアン | Octal ASCII string fields; big-endian numeric extensions |
| 色空間 | N/A (Archive Container) |
| チャンネルと構造 | Unix file directory tree, symlinks, hardlinks, character/block devices, and FIFO pipes |
| 最大寸法 | 8 GB limit in classic ustar; practically unlimited in modern PAX format |
| 透過性 | Full preservation of POSIX file permissions, owner UID/GID, access times, and extended attributes |
| ストリーミングとプログレッシブ | Sequential stream-oriented design: can be written directly to physical magnetic tape drives |
技術比較マトリックス: TAR 対 競合製品
| 技術属性 | TAR (現在) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| ネイティブ圧縮 | なし(純粋なパッケージングコンテナ) | 内蔵Deflate圧縮 | 内蔵LZMA/LZMA2圧縮 | なし(純粋なパッケージングコンテナ) |
| Unixパーミッションの保持 | 100% POSIX属性、シンボリックリンク、UID/GID | 制限付きのUnixパーミッションサポート | 基本パーミッションの保持 | 100% POSIX属性 |
| ストリーミング抽出 | パイプからの完全なストリーミング抽出 | EOFでのセントラルディレクトリの読み取りが必要 | 終了ヘッダーの読み取りが必要 | 完全なストリーミング抽出 |
| ファイルへのランダムアクセス | 遅い(線形シーケンシャルスキャン) | インスタント(セントラルディレクトリールックアップ) | 中程度(インデックスルックアップ) | 遅い(線形シーケンシャルスキャン) |
一般的な破損モードと16進数リカバリガイド
抽出エラー:「tar: 次のヘッダーにスキップしています」または「Xに単一のゼロブロックがあります」。
根本原因: 512バイトブロックの配置の破損、またはストリームの早期終了。
復旧: 破損したブロックを無視するには「tar -i」で抽出し、またはFile2File Tar Toolで修復します。
セキュリティ分析とパーサー攻撃ベクトル
TAR抽出ツールは、パストラバーサル攻撃による任意のファイルの上書きを防ぐために、ファイルパスをサニタイズする必要があります。
既知の攻撃ベクター
- 抽出中に重要なシステムファイルを上書きする「スリップ」パストラバーサル(例:'../etc/passwd')。
- システムディレクトリへのシンボリックリンクを作成し、その後にファイル書き込みを行うシンボリックリンク競合状態。
- 循環ハードリンクーループによるサービス拒否。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- POSIXパーミッション、シンボリックリンク、ハードリンク、所有権など、完全なUnixファイルシステムの忠実性を維持。
- テープ指向のストリーミング設計:ファイルの末尾にシークすることなく、ネットワークパイプから直接抽出可能。
- すべてのLinuxサーバー、コンテナイメージ(Docker/OCI)、Unixソフトウェアディストリビューションにわたる普遍的な標準。
技術的な制限とデメリット
- ネイティブ圧縮なし:非圧縮の.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 アーカイブに変換することで、圧縮層を解除し、未加工の非圧縮ファイルおよびフォルダーのコレクションを露出させます。