iformat.io ロゴ iformat.io

TAR、ZIP、GZIP: Linux アーカイブ形式の説明

2026 年 5 月 17 日更新
7 分で読めます
TAR、ZIP、GZIP は、Linux で最も一般的なアーカイブおよび圧縮形式の 3 つですが、ほとんどの人は、それぞれが実際に何をするのか理解せずに、これらを同じ意味で使用しています。混乱は理解できます。 .tar.gz ファイルはどこにでもあり、ZIP ファイルはソフトウェアをダウンロードするときに表示され、GZIP はサーバー構成で言及されます。実際には、各形式は異なる問題を解決するため、間違った形式を選択すると、オペレーティング システム間でファイルを共有するときに不必要な問題が発生します。

TAR が実際に行うこと (コンプレッサーではありません)

TAR は Tape Archive の略で、Unix システムがデータを磁気テープ ドライブにバックアップしていた時代に遡る名前です。ほとんどの人が見落としているのは、TAR は何も圧縮しないということです。複数のファイルとディレクトリを 1 つのファイルにバンドルし、その構造、権限、所有権、タイムスタンプを維持します。 TAR は、アイテムを縮小せずに箱に入れることと考えてください。
TAR の真の力はメタデータの保存です。 Linux および macOS では、TAR は Unix ファイル権限 (rwx)、シンボリック リンク、ユーザーとグループの所有権、および拡張属性を保持します。そのため、詳細が重要なシステム バックアップやソース コード配布には TAR が不可欠になります。プロジェクト ディレクトリの TAR アーカイブは、抽出時に正確なファイル構造を再現します。
TAR アーカイブの作成は簡単です。 tar -cf archive.tar /path/to/directory。の -c flag は作成を意味し、 -f ファイル名を指定します。抽出するには: tar -xf archive.tar。の -x flag は抽出を意味します。追加 -v 処理中の各ファイルを示す詳細な出力の場合。

GZIP: TAR と組み合わせた単一ファイル圧縮

GZIP (GNU Zip) は純粋に圧縮アルゴリズムです。必要なファイルは 1 つだけでサイズが小さくなります。それ以上のものはありません。フォルダーを直接 GZIP することはできません。 GZIP だけでは複数のファイルをバンドルすることはできません。単一の入力ファイルを圧縮し、.gz 出力を生成します。この特異な焦点は設計によるものです。Unix の哲学では、各ツールは 1 つのことをうまく実行する必要があります。
GZIP は通常、テキスト ファイルで 60 ~ 70% の圧縮を実現します。つまり、10 MB のログ ファイルは 3 ~ 4 MB に縮小される可能性があります。 JPEG や MP4 などのすでに圧縮されたファイルでは、GZIP はスペースをほとんど節約しません (多くの場合 2% 未満です)。圧縮速度が速いため、オンザフライ操作に実用的です。 Web サーバーは GZIP を使用して、HTML、CSS、JavaScript をブラウザに送信する前に圧縮します。これが、HTTP ヘッダーに GZIP が表示される理由です。
ファイルを圧縮するには: gzip filename.txt 作成します filename.txt.gz そしてオリジナルを削除します。解凍するには: gunzip filename.txt.gz または gzip -d filename.txt.gz。元のファイルを保持するには、次を使用します gzip -k filename.txt.

TAR.GZ: Linux 標準の組み合わせ

TAR はファイルをバンドルし、GZIP はファイルを圧縮するため、両方を結合すると、圧縮アーカイブ、.tar.gz ファイル (tarball または .tgz とも呼ばれます) が得られます。この 2 段階のアプローチは、Linux がソフトウェア ソース コード、構成バックアップ、プロジェクト ファイルを配布する標準的な方法です。ほぼすべてのオープンソース プロジェクトは、.tar.gz アーカイブとしてダウンロードを提供します。
1 つのコマンドで圧縮 tarball を作成します。 tar -czf archive.tar.gz /path/to/directory。の -z flag は、TAR に GZIP を介してパイプするように指示します。次のように抽出します。 tar -xzf archive.tar.gz。このプロセスはシームレスです。TAR はアーカイブを処理し、圧縮のために GZIP を自動的に呼び出します。

ZIP: ユニバーサルなオールインワン形式

ZIP は、TAR と GZIP が別々に行うことを実行します。アーカイブと圧縮を 1 つのステップで行います。 1989 年に作成された ZIP は Windows で主流の形式となり、現在でもすべてのオペレーティング システムで最も広くサポートされているアーカイブ形式です。 Windows、macOS、およびほとんどの Linux デスクトップ環境では、追加のソフトウェアをインストールしなくても、ZIP ファイルをネイティブに開くことができます。
ZIP に関してほとんどの人が見落としているのは、ZIP が内部で圧縮をどのように処理するかということです。 ZIP アーカイブ内の各ファイルは個別に圧縮されます。これは、他のすべてを解凍せずに、大きな ZIP から 1 つのファイルを抽出できることを意味します。 TAR.GZ では、ファイルにアクセスするにはアーカイブ全体を解凍する必要があります。このファイルごとの圧縮は、大規模なアーカイブを扱う場合に大きな利点があります。
コマンドラインで: zip -r archive.zip /path/to/directory ZIP アーカイブを再帰的に作成します。 unzip archive.zip それを抽出します。 Linux 上のほとんどのグラフィカル ファイル マネージャー (Nautilus、Dolphin、Thunar) も、右クリック メニューから ZIP の作成と抽出を処理します。

TAR.GZ と ZIP: 本当の違い

通常、TAR.GZ が優先されるのは圧縮率です。 GZIP はアーカイブ全体を 1 つのストリームとして圧縮するため、ファイル全体のパターンを見つけてより効率的に圧縮できます。 ZIP は各ファイルを個別に圧縮するため、ファイル間の冗長性が失われます。同様のテキスト ファイルのディレクトリでは、TAR.GZ は ZIP よりも 5 ~ 15% 優れた圧縮率を達成できる可能性があります。混合コンテンツ ディレクトリでは、その差は通常 5% 未満です。
もう 1 つの重要な違いは、権限の保持です。 TAR は、Unix 権限、所有権、シンボリック リンク、およびタイムスタンプを忠実に保存します。 ZIP では Unix 権限のサポートが制限されています。実装によっては権限が保存される場合もあれば、保存されない場合もあります。 Linux サーバーをバックアップしている場合、またはファイル権限に依存するソフトウェアを配布している場合は、TAR.GZ を選択する方が安全です。
クロスプラットフォームの利便性は ZIP が優勢です。 .tar.gz ファイルを受け取った Windows ユーザーは、それを開くために 7-Zip または同様のソフトウェアが必要です。 ZIP ファイルはどこでもネイティブに開きます。異なるオペレーティング システムを使用している人々とファイルを共有する場合、ZIP を使用すると摩擦が完全に解消されます。

TAR.BZ2 および TAR.XZ: より優れた圧縮の代替手段

TAR と組み合わせられる圧縮プログラムは GZIP だけではありません。 BZIP2 (tar -cjf archive.tar.bz2) 通常、GZIP よりも 10 ~ 20% 圧縮率が高くなりますが、実行速度は 2 ~ 6 倍遅くなります。 XZ (tar -cJf archive.tar.xz)最高の圧縮率を実現します(多くの場合、GZIP より 20 ~ 30% 優れています)が、最も遅いオプションです。
Linux カーネルのソース コードは、ダウンロード サイズが小さくなって解凍が遅くなることが正当化されたため、配布用に GZIP から XZ に切り替えられました。 130MB のカーネル ソース tarball の場合、XZ は 75MB のファイルを生成する可能性がありますが、GZIP の場合は 100MB です。帯域幅が重要で、一度圧縮しても何百万回もダウンロードする場合には、XZ が合理的です。

各形式をいつ使用するか

次の場合に TAR.GZ を使用します。 Linux ソフトウェア ソース コードの配布、権限が重要な場合のサーバー バックアップの作成、Linux または macOS でのプロジェクト ディレクトリのアーカイブ、Unix エコシステム内に留まるファイルの圧縮などです。 TAR.GZ は、Linux ネイティブのもののデフォルトの選択肢です。
次の場合に ZIP を使用します。 Windows または Mac ユーザーとのファイルの共有、電子メールへのアーカイブの添付、技術者以外のユーザーが開く必要があるファイルの配布、コマンド ライン アクセスを使用しないシステム上でのアーカイブの作成などです。 ZIP は、クロスプラットフォーム共有のための普遍的な安全な手段です。
次の場合には GZIP を単独で使用します。 ログ ファイル、データベース ダンプ、CSV エクスポートなどの個々のファイルを圧縮します。 Web サーバーは GZIP を使用して応答を圧縮します。多くのデータ パイプラインは、個々のファイルの圧縮に GZIP を使用します。ファイルが 1 つだけの場合は、ZIP アーカイブを作成するよりも GZIP の方が高速かつ簡単です。

一般的なコマンドのクイックリファレンス

TAR.GZ: 作成: tar -czf backup.tar.gz ./myfiles |抜粋: tar -xzf backup.tar.gz |リストの内容: tar -tzf backup.tar.gz. 郵便番号: 作成: zip -r archive.zip ./myfiles |抜粋: unzip archive.zip |リストの内容: unzip -l archive.zip. GZIP: 圧縮: gzip file.txt |解凍: gunzip file.txt.gz.

アーカイブ形式間の変換

ある形式でアーカイブを受け取ったときに、別の形式でアーカイブが必要になる場合があります。同僚が TAR ファイルを送信しましたが、Windows ワークフローでは ZIP が必要です。または、ZIP をダウンロードしましたが、Linux デプロイメント スクリプトには TAR.GZ が必要です。手動で抽出して再アーカイブする代わりに、次のようにすることができます。 iformat.io TAR から ZIP へのコンバーター 変換を直接処理します。
逆方向の場合は、 ZIPをTARに変換します Linux 環境用にファイルを準備するとき。最大限の圧縮が必要な場合は、 TARを7Zに変換 LZMA2 圧縮が可能で、通常は GZIP と ZIP の deflate アルゴリズムの両方よりも優れたパフォーマンスを発揮します。

正しい選択をする

形式に関する議論は、誰がファイルを開くか、どのオペレーティング システムを使用するか、Unix 権限が重要かどうかという 3 つの要素に帰着します。 Linux 間のワークフローの場合、TAR.GZ は自然な選択です。 Windows ユーザーが関与するものであれば、ZIP を使用すると互換性の問題を回避できます。大規模なデータセットで最大限の圧縮を実現するには、7Z または TAR.XZ を検討してください。
日常的な使用では、共有には ZIP、バックアップには TAR.GZ を使用すると間違いはありません。どちらも無料で、サポートが充実しており、信頼性が高くなります。形式の違いは実際にありますが、管理可能です。形式を切り替える必要がある場合は、オンライン コンバーターを使用すると、プロセスが簡単になります。
すべての投稿を参照