Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
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 と組み合わせるのが基本です。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。