このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:gzipコマンドとgunzipコマンド

gzipコマンドとgunzipコマンド

 Linuxでは、大量のログやデータファイルを扱うことが多く、ディスク領域を節約するために圧縮は欠かせません。代表的な圧縮形式のひとつが GNU zip (gzip) であり、非常に多くのディストリビューションで標準的に利用されています。gzipで圧縮されたファイルは、拡張子「.gz」を持ち、解凍には gunzip コマンドを使用します。
 本章では、Rocky Linux環境での gzip および gunzip の使い方を解説し、実際の操作例を通じて圧縮・解凍の基本を学びます。

1.gzipコマンドによる圧縮

1.1. gzipの基本

 gzipコマンドは、単一ファイルを圧縮し、拡張子.gzを付与したファイルを生成します。元のファイルは圧縮後、自動的に削除され、圧縮ファイルだけが残ります。

書式

gzip [オプション] ファイル名

1.2. 主なオプション

オプション説明
-c圧縮結果を標準出力に出力(元ファイルを残す場合に利用)
-k元のファイルを削除せずに圧縮ファイルを作成
-d圧縮解除(gunzipと同等の動作)
-v圧縮率や処理状況を表示
-#圧縮率を指定(1=低速低圧縮、9=高圧縮)

1.3. 使用例

【例1】ファイルの圧縮

[user@rocky9 ~]$ ls -lh dummy1.dat dummy3.bin
-rw-r--r--. 1 user user 10M  8月 26 01:08 dummy1.dat
-rw-r--r--. 1 user user 50M  8月 26 02:10 dummy3.bin

[user@rocky9 ~]$ gzip dummy1.dat 
[user@rocky9 ~]$ gzip dummy3.bin
[user@rocky9 ~]$ ls -lh dummy1.dat.gz dummy3.bin.gz
-rw-r--r--. 1 user user 10K  8月 26 01:08 dummy1.dat.gz
-rw-r--r--. 1 user user 50K  8月 26 02:10 dummy3.bin.gz

→ 元のファイル dummy1.datdummy3.bin は削除され、圧縮後の dummy1.dat.gzdummy3.bin.gz のみ残る。

【例2】元ファイルを残して圧縮(-c オプション利用)

[user@rocky9 ~]$ gzip -c dummy2.img > dummy2.img.gz
[user@rocky9 ~]$ ls -lh dummy2.img dummy2.img.gz
-rw-r--r--. 1 user user 100M  8月 26 01:10 dummy2.img
-rw-r--r--. 1 user user 100K  8月 26 01:59 dummy2.img.gz

→ 元の dummy2.img は残したまま、dummy2.img.gz が作成された。

2.gunzipコマンドによる解凍

2.1. gunzipの基本

 gunzipは、gzip形式(.gz)で圧縮されたファイルを解凍するためのコマンドです。gzipに-dオプションを付けても同様の動作をします。

書式

gunzip [オプション] 圧縮ファイル名

2.2. 主なオプション

オプション説明
-c標準出力に展開(元の圧縮ファイルを残す)
-k元の圧縮ファイルを削除せずに展開
-v展開の進捗や圧縮率を表示

2.3. 使用例

【例3】ファイルの解凍

[user@rocky9 ~]$ gunzip dummy1.dat.gz
[user@rocky9 ~]$ ls -lh dummy1.dat
-rw-r--r--. 1 user user 10M  8月 26 01:08 dummy1.dat

→ 圧縮ファイルは解凍され、元の dummy1.dat が復元された。

【例4】圧縮ファイルを残したまま展開(-c オプション利用)

[user@rocky9 ~]$ gunzip -c dummy3.bin.gz > dummy3.bin
[user@rocky9 ~]$ ls -lh dummy3.bin dummy3.bin.gz
-rw-r--r--. 1 user user 50M  8月 26 02:12 dummy3.bin
-rw-r--r--. 1 user user 50K  8月 26 02:10 dummy3.bin.gz

dummy3.bin.gz を残したまま、展開された dummy3.bin を生成。

3.gzip/gunzipの活用例

3.1. 大容量ログファイルの圧縮

システム運用でよく使われるのが、/var/log/ 配下にあるログファイルの圧縮です。
【例5】

[user@rocky9 ~]$ sudo gzip /var/log/messages
[sudo] user のパスワード:
[user@rocky9 ~]$ ls -l /var/log/messages.gz 
-rw-------. 1 root root 273352  8月 26 02:16 /var/log/messages.gz
[user@rocky9 ~]$ sudo gunzip /var/log/messages.gz 

messages.gz となり、ログの保存容量を削減可能。

3.2. 複数ファイルを一括で圧縮

gzipはディレクトリを直接圧縮できませんが、複数ファイルをまとめて圧縮することは可能です。

【例6】

[user@rocky9 ~]$ gzip date.txt log.txt memo_2025.txt
[user@rocky9 ~]$ ls -l date.txt.gz log.txt.gz memo_2025.txt.gz 
-rw-r--r--. 1 user user  71  8月 23 13:35 date.txt.gz
-rw-r--r--. 1 user user  97  8月 24 15:21 log.txt.gz
-rw-r--r--. 1 user user 116  8月 24 15:21 memo_2025.txt.gz
[user@rocky9 ~]$ gunzip date.txt log.txt memo_2025.txt

→ それぞれが date.txt.gzlog.txt.gzmemo_2025.txt.gz に変換される。

圧縮したファイルを解凍して元に戻します。

[user@rocky9 ~]$ gunzip date.txt log.txt memo_2025.txt

まとめ

  • gzip はファイルを圧縮し、拡張子 .gz を付与する。
  • gunzip.gz ファイルを解凍して元に戻す。
  • -c オプションを活用することで、元ファイルを残したまま圧縮・解凍が可能。
  • ディレクトリ全体を扱う場合は、tarと組み合わせて使うのが一般的(次章以降で解説)。