はじめに

こんにちは!今回はunzipコマンドについて解説します。

unzipは、ZIP形式のファイルを展開(解凍)するコマンドです。Windowsと互換性が高い圧縮形式なので、クロスプラットフォームでのファイル受け渡しに最適。メールで送られてきたZIPファイルや、ダウンロードしたzipファイルを展開するときに毎日使うコマンドですね。

「ZIPファイルの開き箱」って感じです。

unzipコマンドとは

unzipは、ZIP形式のアーカイブファイルを展開するコマンドです。“unzip"の名の通り、zip圧縮されたファイルを元に戻します。

ZIP形式は、Windows・Mac・Linux・スマートフォンなど、あらゆるプラットフォームで標準的に対応しているから、ファイル交換に最適なんです。gziptarと違い、複数ファイルの圧縮、フォルダ構造の保持、パスワード保護などの機能が豊富。ビジネスシーンで一番よく使われる圧縮形式ですね。

基本構文

1
unzip [オプション] zipファイル [展開先ディレクトリ]

ZIPファイルを指定するだけで展開開始。デフォルトではカレントディレクトリに展開されます。

主なオプション

オプション 説明
-l ZIPファイルの内容をリストアップ(展開しない)
-v 詳細表示
-q 出力を抑制(quiet)
-d 展開先ディレクトリを指定
-o 既存ファイルに上書き(確認なし)
-n 既存ファイルを上書きしない
-j ディレクトリ構造を無視してファイルのみ展開
-t テスト実行(展開せずにファイル整合性チェック)
-P パスワードを指定
-x ファイル 特定ファイルを除外

使用例

例1: 基本的な展開

1
unzip archive.zip

実行結果:

1
2
3
4
Archive:  archive.zip
  inflating: file1.txt
  inflating: file2.txt
  inflating: folder/file3.md

archive.zipをカレントディレクトリに展開。ファイル一覧が表示されます。

例2: ZIPファイルの内容確認(展開しない)

1
unzip -l archive.zip

実行結果:

1
2
3
4
5
6
7
8
Archive:  archive.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
     1234  2026-01-03 12:00   file1.txt
     5678  2026-01-03 12:01   file2.txt
     9012  2026-01-03 12:02   folder/file3.md
---------                     -------
    16924                     3 files

展開せずに、ZIPファイルの内容を確認。どんなファイルが入っているか事前チェック。

例3: 展開先ディレクトリを指定

1
unzip archive.zip -d /tmp/extracted/

実行結果:

1
2
3
4
Archive:  archive.zip
  inflating: /tmp/extracted/file1.txt
  inflating: /tmp/extracted/file2.txt
  inflating: /tmp/extracted/folder/file3.md

-dオプションで展開先ディレクトリを指定。

例4: 詳細表示で展開

1
unzip -v archive.zip

実行結果:

1
2
3
4
5
6
7
8
Archive:  archive.zip
 Length   Method    Size  Cmpr Date    Time    CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
    1234  Defl:N      456  63% 2026-01-03 12:00 abc12345  file1.txt
    5678  Defl:N    2345  59% 2026-01-03 12:01 def67890  file2.txt
    9012  Defl:N    3456  62% 2026-01-03 12:02 ghi11111  folder/file3.md
--------          -------  ---                            -------
   15924              6257  61%                            3 files

各ファイルの圧縮率やCRCハッシュも表示。

例5: ディレクトリ構造を無視して展開

1
unzip -j archive.zip -d /tmp/flat/

実行結果:

1
2
3
4
Archive:  archive.zip
  inflating: /tmp/flat/file1.txt
  inflating: /tmp/flat/file2.txt
  inflating: /tmp/flat/file3.md

-jで、ZIP内のディレクトリ構造を無視して、すべてのファイルを1つのディレクトリに展開。

例6: ファイル整合性をテスト

1
unzip -t archive.zip

実行結果:

1
2
3
4
5
Archive:  archive.zip
    testing: file1.txt                 OK
    testing: file2.txt                 OK
    testing: folder/file3.md           OK
No errors detected in compressed data of archive.zip.

展開せずに、ファイルが破損していないかチェック。ダウンロード後の確認に最適。

例7: パスワード保護されたZIPを展開

1
unzip -P mypassword archive.zip

実行結果:

1
2
3
Archive:  archive.zip
  inflating: file1.txt
  inflating: file2.txt

-Pオプションでパスワードを指定。対話的にパスワード入力する代わりに、自動化可能。

例8: 既存ファイルを上書きしない

1
unzip -n archive.zip

実行結果:

1
2
3
4
Archive:  archive.zip
  inflating: file1.txt
    skipping: file2.txt        (already exists)
  inflating: file3.txt

同じ名前のファイルが存在している場合、スキップ。既存ファイルを保護。

例9: 特定ファイルを除外して展開

1
unzip archive.zip -x "*.txt" -d /tmp/

実行結果:

1
2
3
Archive:  archive.zip
  inflating: /tmp/folder/file3.md
    (*.txt ファイルはスキップ)

-xで特定ファイルパターンを除外。テキストファイルだけ展開しない、など。

例10: 出力を抑制して展開

1
unzip -q archive.zip

実行結果:

1
(何も表示されない)

-qで出力を抑制。スクリプトでの自動化に向いています。

Tips・注意点

ZIP ファイルの作成はzipコマンド

1
zip -r archive.zip folder/

unzip は解凍専用。作成はzipコマンドを使用。

Windows と の互換性が高い

1
2
unzip document.zip
# Windows、Mac、Linux すべてで同じように動作

ZIP形式は最も互換性が高い圧縮形式。クロスプラットフォーム共有に最適。

大容量 ZIPは -t でテスト

1
2
unzip -t large_archive.zip
# 展開前に破損チェック

大きなZIPファイルを展開する前に、-tでテスト。展開途中の失敗を防げます。

実践的な使い方

ダウンロードされたZIPを自動展開

1
2
3
4
5
6
7
8
9
#!/bin/bash
ZIP_FILE="download.zip"

if unzip -t "$ZIP_FILE" > /dev/null 2>&1; then
  unzip -q "$ZIP_FILE"
  echo "展開完了"
else
  echo "ファイルが破損しています"
fi

ファイル整合性チェック後に展開。エラー時は処理中止。

複数のZIPファイルを一括展開

1
2
3
4
for file in *.zip; do
  echo "展開中: $file"
  unzip -q -d "extracted/${file%.zip}" "$file"
done

カレントディレクトリの全ZIPファイルを展開。各ZIPは別々のフォルダに展開。

ZIPファイルから特定ファイルのみ抽出

1
unzip archive.zip "folder/important.txt" -d /tmp/

ZIPの中から特定ファイルだけを抽出。全体展開は不要な場合に便利。

まとめ

unzipコマンドのポイント:

  • ZIP形式のアーカイブを展開する基本ツール
  • -l: 内容を確認(展開しない)
  • -d: 展開先ディレクトリ指定
  • -v: 圧縮率などの詳細表示
  • -t: ファイル整合性をテスト
  • -P: パスワード保護されたZIPに対応
  • -j: ディレクトリ構造を無視
  • よく使う組み合わせ: unzip -l, unzip -t, unzip -d

Windowsとの互換性が高く、クロスプラットフォーム共有に最適。展開前に-l-tでチェックするのが実務的なやり方ですよ!