言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理に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 と組み合わせるのが基本です。

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