gzipコマンドの使い方を完全ガイド!初心者でもわかるLinuxの圧縮と解凍の基本
生徒
「Linuxでファイルを圧縮したいんですけど、どうすればいいですか?」
先生
「Linuxではgzipコマンドを使うことで、ファイルを簡単に圧縮できますよ。」
生徒
「圧縮って何ですか?それって難しくないですか?」
先生
「圧縮というのは、ファイルのサイズを小さくすることです。写真や動画を保存するときにスペースを節約できるんですよ。操作も簡単なので一緒に学びましょう。」
1. gzipコマンドとは?
gzipコマンドは、Linuxでファイルを圧縮したり解凍したりするための基本的なコマンドです。圧縮とは、ファイルのサイズを小さくすることで、ディスク容量を節約したり、ネットワーク経由でファイルを早く送ったりできる便利な機能です。
たとえば、大きなテキストファイルやログファイルを圧縮すると、元のサイズの数分の一になることもあります。これは、衣類を圧縮袋に入れて収納スペースを節約するのと似ています。gzipで圧縮されたファイルには、通常.gzという拡張子が付きます。
Windowsの「ZIP圧縮」と似ていますが、gzipはLinuxやUNIX系のシステムで非常によく使われており、Webサーバーでデータを圧縮して送信する場合などにも活用されています。
2. gzipコマンドの基本的な使い方
gzipコマンドの基本的な書き方は、以下のようになります。
gzip [オプション] ファイル名
最もシンプルな使い方は、圧縮したいファイル名を指定するだけです。たとえば、sample.txtというファイルを圧縮する場合は、次のようにします。
gzip sample.txt
ls
sample.txt.gz
このコマンドを実行すると、元のsample.txtファイルは削除され、代わりにsample.txt.gzという圧縮ファイルが作成されます。これがgzipの重要な特徴で、元のファイルは自動的に圧縮ファイルに置き換わるのです。
ここで「オプション」とは、コマンドの動作をカスタマイズするための追加の指示のことです。たとえば、圧縮レベルを変えたり、元のファイルを残したりすることができます。
3. ファイルを圧縮する方法
ファイルを圧縮する際には、いくつかの便利なオプションがあります。最も基本的な圧縮方法はすでに説明しましたが、ここではより実用的な使い方を見ていきましょう。
元のファイルを残して圧縮するには、-kオプション(keepの略)を使います。これにより、元のファイルが削除されずに残ります。
gzip -k document.txt
ls
document.txt document.txt.gz
このように、-kオプションを使うと、元のdocument.txtと圧縮されたdocument.txt.gzの両方が保存されます。大事なファイルを圧縮する際には、このオプションを使うと安心です。
また、圧縮レベルを指定することもできます。gzipでは、-1から-9までの数字で圧縮レベルを指定できます。-1は最も速いが圧縮率は低く、-9は最も圧縮率が高いが時間がかかります。デフォルトは-6です。
gzip -9 largefile.log
ls -lh
-rw-r--r-- 1 user user 1.2M Jan 9 10:00 largefile.log.gz
大きなログファイルなどを最大限に圧縮したい場合は、-9オプションが効果的です。ただし、通常の用途では標準の圧縮レベルで十分なことが多いです。
4. ファイルを解凍する方法
圧縮したファイルを元に戻すことを「解凍」または「展開」といいます。gzipで圧縮したファイルを解凍するには、-dオプション(decompressの略)を使います。
gzip -d sample.txt.gz
ls
sample.txt
このコマンドを実行すると、sample.txt.gzが解凍されて元のsample.txtに戻ります。圧縮のときと同じように、圧縮ファイルは削除されて元のファイルだけが残ります。
また、gunzipというコマンドも使えます。これはgzip -dと全く同じ動作をする別名のコマンドです。
gunzip document.txt.gz
ls
document.txt
gunzipは「GNU unzip」の略で、gzip -dと同じですが、こちらの方が直感的でわかりやすいという人もいます。どちらを使っても結果は同じなので、お好みで選んでください。
5. 複数のファイルをまとめて圧縮する
gzipコマンドは、複数のファイルを一度に圧縮することもできます。ただし、重要な点として、gzipは各ファイルを個別に圧縮するということを覚えておきましょう。
gzip file1.txt file2.txt file3.txt
ls
file1.txt.gz file2.txt.gz file3.txt.gz
このように、三つのファイルを指定すると、それぞれが個別に圧縮されて三つの.gzファイルが作成されます。これは、Windowsの「ZIP圧縮」のように複数のファイルを一つのアーカイブにまとめるのとは異なります。
もし複数のファイルを一つのアーカイブにまとめて圧縮したい場合は、tarコマンドとgzipを組み合わせて使います。この組み合わせは非常によく使われており、.tar.gzや.tgzという拡張子のファイルを見たことがあるかもしれません。これについては、後ほど説明します。
6. 圧縮率の確認と詳細表示
ファイルがどれくらい圧縮されたかを確認したい場合は、-vオプション(verboseの略)を使います。これにより、圧縮の詳細情報が表示されます。
gzip -v report.txt
report.txt: 65.2% -- replaced with report.txt.gz
この出力では、ファイルが約65パーセント圧縮されたことがわかります。つまり、元のファイルサイズの約35パーセントになったということです。テキストファイルやログファイルは特に圧縮率が高くなる傾向があります。
また、-lオプション(listの略)を使うと、圧縮ファイルの情報を解凍せずに確認できます。
gzip -l report.txt.gz
compressed uncompressed ratio uncompressed_name
1024 2945 65.2% report.txt
これにより、圧縮後のサイズ、元のサイズ、圧縮率、元のファイル名などの情報が一覧表示されます。大きなファイルを扱う際に、解凍する前にサイズを確認したいときに便利です。
7. tarコマンドとの組み合わせ
gzipは単独でも便利ですが、tarコマンドと組み合わせることで、さらに強力なアーカイブツールになります。tarは複数のファイルやディレクトリを一つのファイルにまとめるコマンドで、gzipと組み合わせることで「まとめて圧縮」ができます。
tar -czf archive.tar.gz folder/
ls
archive.tar.gz folder/
このコマンドでは、tarの-cオプションでアーカイブを作成し、-zオプションでgzip圧縮を行い、-fオプションでファイル名を指定しています。これにより、folderディレクトリ全体が一つの圧縮ファイルにまとめられます。
解凍する場合は、次のようにします。
tar -xzf archive.tar.gz
ls
archive.tar.gz folder/
ここで-xは展開(extract)を意味します。この組み合わせは、Linuxでファイルを配布したりバックアップを作成したりする際の標準的な方法となっています。
8. gzipと他の圧縮コマンドとの違い
Linux にはgzip以外にも、いくつかの圧縮コマンドがあります。それぞれに特徴があるので、用途に応じて使い分けることが大切です。
bzip2コマンドは、gzipよりも高い圧縮率を実現できますが、圧縮と解凍に時間がかかります。拡張子は.bz2です。ディスク容量を最大限に節約したい場合に適していますが、速度を重視する場合はgzipの方が優れています。
xzコマンドは、比較的新しい圧縮形式で、bzip2よりもさらに高い圧縮率を実現できます。拡張子は.xzです。最近のLinuxディストリビューションでは、ソフトウェアパッケージの配布に.tar.xz形式がよく使われています。
zipコマンドは、Windowsとの互換性が高い圧縮形式です。拡張子は.zipで、複数のファイルを一つのアーカイブにまとめることができます。異なるOS間でファイルを共有する場合は、zipが便利です。
一般的に、Linuxのシステム管理やログファイルの圧縮にはgzipが最もよく使われます。速度と圧縮率のバランスが良く、ほとんどのLinuxシステムに標準でインストールされているからです。
9. gzipの便利なオプション一覧
ここまで説明してきたオプション以外にも、gzipにはいくつかの便利なオプションがあります。実際の作業で役立つものをまとめて紹介します。
-rオプション(recursiveの略)を使うと、ディレクトリ内のファイルを再帰的に圧縮できます。ただし、各ファイルは個別に圧縮されます。
gzip -r mydir/
ls mydir/
file1.txt.gz file2.txt.gz file3.txt.gz
-tオプション(testの略)を使うと、圧縮ファイルが壊れていないかテストできます。これは、ダウンロードしたファイルや長期保存していたファイルの整合性を確認する際に便利です。
gzip -t backup.tar.gz
(エラーがなければ何も表示されません)
-fオプション(forceの略)を使うと、すでに圧縮ファイルが存在する場合でも強制的に上書きします。通常は確認を求められますが、このオプションを使うとスクリプトなどで自動化する際に便利です。
-cオプションを使うと、圧縮結果を標準出力に出力します。これにより、元のファイルを保持したまま、圧縮データをパイプで別のコマンドに渡すことができます。上級者向けの使い方ですが、覚えておくと便利です。
10. 実践的な使用例
最後に、実際の業務やシステム管理でよく使われるgzipの使用例を紹介します。これらの例を参考にすれば、日常的な作業でgzipを効果的に活用できるでしょう。
ログファイルのアーカイブでは、古いログファイルを圧縮して保存することで、ディスク容量を大幅に節約できます。
gzip -9 /var/log/old_access.log
ls -lh /var/log/
-rw-r--r-- 1 root root 125K Jan 9 10:00 old_access.log.gz
この例では、数メガバイトあったログファイルが数百キロバイトに圧縮され、ストレージの効率的な利用が可能になります。
バックアップの作成では、tarと組み合わせてディレクトリ全体をバックアップします。
tar -czf backup_2026-01-09.tar.gz /home/user/documents/
ls -lh
-rw-r--r-- 1 user user 45M Jan 9 10:00 backup_2026-01-09.tar.gz
このように日付をファイル名に含めることで、複数のバックアップを管理しやすくなります。定期的なバックアップ作業をシェルスクリプトで自動化することもできます。
ファイル転送前の圧縮では、大きなファイルをネットワーク経由で送信する前に圧縮することで、転送時間を大幅に短縮できます。
gzip -k presentation.pdf
ls -lh
-rw-r--r-- 1 user user 15M Jan 9 10:00 presentation.pdf
-rw-r--r-- 1 user user 12M Jan 9 10:00 presentation.pdf.gz
この例では、-kオプションで元のファイルを残しながら圧縮版を作成しています。受信者はgunzipで解凍すれば、元のPDFファイルを取得できます。