Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Bash辞典
  3. gzip / bzip2 / zip / unzip

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 / gunzipgzip ファイルを展開します。
gzip -k元ファイルを残したまま圧縮します。
gzip -1 〜 -9圧縮率を指定します(1: 高速・低圧縮, 9: 低速・高圧縮)。
gzip -l圧縮ファイルの情報(圧縮率など)を表示します。
zcat ファイル.gzgzip ファイルを展開せずに内容を表示します。
bzip2 ファイルファイルを bzip2 圧縮します(gzip より高圧縮率)。
bunzip2 / bzip2 -dbzip2 ファイルを展開します。
bzcat ファイル.bz2bzip2 ファイルを展開せずに内容を表示します。
zip -r アーカイブ.zip ディレクトリディレクトリを再帰的に zip 圧縮します。
zip -e アーカイブ.zip ファイルパスワード付きの zip を作成します。
unzip アーカイブ.zipzip ファイルを展開します。
unzip -l アーカイブ.zipzip の内容一覧を表示します(展開しない)。
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 と組み合わせるのが基本です。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。