gzip / bzip2 / zip / unzip
『gzip』・『bzip2』・『zip』はファイルの圧縮・展開(解凍)を行うコマンドです。それぞれ圧縮アルゴリズムが異なり、用途や環境によって使い分けます。
構文
gzip で圧縮します(元ファイルは削除されて .gz ファイルになります)。
gzip ファイル名
gzip で展開(解凍)します。
gunzip ファイル名.gz
『-k』オプションを付けると元ファイルを残したまま圧縮します。
gzip -k ファイル名
zip アーカイブを作成します。
zip アーカイブ名.zip ファイルまたはディレクトリ...
zip アーカイブを展開(解凍)します。
unzip アーカイブ名.zip
bzip2 で圧縮します。
bzip2 ファイル名
bzip2 で展開(解凍)します。
bunzip2 ファイル名.bz2
コマンド・オプション一覧
| コマンド / オプション | 概要 |
|---|---|
| gzip ファイル | ファイルを gzip 圧縮します(元ファイルは置き換え)。 |
| gzip -d / gunzip | gzip ファイルを展開(解凍)します。 |
| gzip -k | 元ファイルを残したまま圧縮します。 |
| gzip -1 〜 -9 | 圧縮率を指定します(1: 高速・低圧縮, 9: 低速・高圧縮)。 |
| gzip -l | 圧縮ファイルの情報(圧縮率など)を表示します。 |
| zcat ファイル.gz | gzip ファイルを展開(解凍)せずに内容を表示します。 |
| bzip2 ファイル | ファイルを bzip2 圧縮します(gzip より高圧縮率)。 |
| bunzip2 / bzip2 -d | bzip2 ファイルを展開(解凍)します。 |
| bzcat ファイル.bz2 | bzip2 ファイルを展開(解凍)せずに内容を表示します。 |
| zip -r アーカイブ.zip ディレクトリ | ディレクトリを再帰的に zip 圧縮します。 |
| zip -e アーカイブ.zip ファイル | パスワード付きの zip を作成します。 |
| unzip アーカイブ.zip | zip ファイルを展開(解凍)します。 |
| unzip -l アーカイブ.zip | zip の内容一覧を表示します(展開(解凍)しない)。 |
| unzip -d ディレクトリ | 指定ディレクトリに展開(解凍)します。 |
サンプルコード
ログファイルを『gzip』で圧縮します。元ファイルは削除されて『.gz』ファイルに置き換わります。
gzip /var/log/app.log ls /var/log/app.log* /var/log/app.log.gz
元ファイルを残したまま圧縮します。
gzip -k report.txt ls report.txt* report.txt report.txt.gz
圧縮ファイルの情報(圧縮率など)を確認します。
gzip -l app.log.gz
compressed uncompressed ratio uncompressed_name
45231 234567 80.7% app.log
圧縮したまま内容を確認します(展開(解凍)不要)。『zcat』を使うとパイプで他のコマンドに渡せます。
zcat /var/log/app.log.gz | grep "ERROR" 2026-03-06 08:15:32 [ERROR] Connection timeout 2026-03-06 09:42:11 [ERROR] File not found
複数ファイルを『zip』にまとめます。
zip archive.zip file1.txt file2.txt file3.txt adding: file1.txt (deflated 62%) adding: file2.txt (deflated 58%) adding: file3.txt (deflated 71%)
ディレクトリを再帰的に zip 圧縮します。
zip -r project.zip ./myproject/
zip の内容を確認します(展開(解凍)しない)。
unzip -l project.zip
Archive: project.zip
Length Date Time Name
--------- ---------- ----- ----
1024 2026-03-06 12:00 myproject/index.php
2048 2026-03-06 12:00 myproject/css/style.css
--------- -------
3072 2 files
指定ディレクトリに展開(解凍)します。
unzip project.zip -d /tmp/extracted/
gzip 圧縮ファイルの行数をカウントします。
zcat access.log.gz | wc -l 48253
概要
圧縮率の高さは xz > bzip2 > gzip、速度は逆順です。ログ圧縮などの日常作業には『$ gzip』、Windows との互換性が必要なときは『$ zip』を使うのが一般的です。
『$ zcat』(gzip)・『$ bzcat』(bzip2)を使うと展開(解凍)せずに圧縮ファイルの内容を確認・パイプ処理できます。ディレクトリをまとめてアーカイブする場合は tar と組み合わせるのが基本です。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。