この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: unzip ファイルの解凍
SEOタイトル: Linux unzip コマンド完全ガイド

この記事の要点
  • 基本: unzip file.zip でカレントに解凍
  • 解凍先指定: -d /path/to/dir
  • 中身確認: -l(一覧) / 内容のみ -p(標準出力へ)
  • 上書き制御: -o(強制上書き) / -n(既存なら飛ばす)
  • パスワード付き: -P passwd / 文字コード指定: -O sjis(古い日本語 zip)

unzip コマンドの基本

Linux / macOS で zip ファイルを展開する標準ツールです。RHEL / CentOS では yum install unzip、Debian / Ubuntu では apt install unzip で導入します。

# インストール
sudo apt install unzip        # Debian/Ubuntu
sudo yum install unzip        # RHEL/CentOS
sudo dnf install unzip        # Fedora/RHEL 8+

# 基本: カレントディレクトリに展開
unzip archive.zip

# 解凍先を指定
unzip archive.zip -d /tmp/extracted/

# 解凍先が無ければ自動作成される

主なオプション一覧

オプション動作
-d DIR解凍先ディレクトリ
-l中身のファイル一覧(解凍しない)
-v詳細一覧(CRC / 圧縮率も表示)
-t整合性テスト(解凍しない)
-p FILE標準出力へ展開(パイプ用)
-o確認なしで上書き
-n既存ファイルは飛ばす(確認なし)
-q静かに(進捗を出さない)
-jディレクトリ構造を無視してフラット展開
-x PATTERN除外パターン
-P passwdパスワード指定
-O CHARSET文字コード指定(cp932 / sjis 等)

中身を確認してから解凍

# ファイル一覧表示(解凍はしない)
unzip -l archive.zip
# Archive:  archive.zip
#   Length      Date    Time    Name
# ---------  ---------- -----   ----
#       123  2026-01-01 12:00   readme.txt
#       456  2026-01-01 12:01   src/index.html
# ---------                     -------
#       579                     2 files

# 詳細表示(CRC・圧縮率も)
unzip -v archive.zip

# 整合性テスト(壊れていないか)
unzip -t archive.zip
# → No errors detected in compressed data of archive.zip.

上書き制御

デフォルトでは既存ファイルがある時に対話プロンプトが出ます。バッチ処理では -o-n を必ず付けます。

# 対話プロンプト例
unzip archive.zip
# replace existing-file? [y]es, [n]o, [A]ll, [N]one, [r]ename:

# 確認なしで全上書き
unzip -o archive.zip

# 既存ファイルは飛ばす
unzip -n archive.zip

# バッチ処理(CI など)では必ずどちらか指定
unzip -o archive.zip -d /opt/app/

特定ファイルだけ抽出 / 除外

# 特定パターンだけ展開
unzip archive.zip 'docs/*'
unzip archive.zip '*.txt'

# 特定パターンを除外
unzip archive.zip -x '*.exe'
unzip archive.zip -x 'tests/*' '*.log'

# 個別ファイルの中身を標準出力に
unzip -p archive.zip path/to/file.txt
unzip -p archive.zip data.json | jq .   # パイプで処理

パスワード付き zip

# パスワード指定(履歴に残る → 注意)
unzip -P SECRETPASSWD archive.zip

# 対話入力(推奨:履歴に残らない)
unzip archive.zip
# → [archive.zip] password:

# 環境変数経由
read -s ZIPPW
unzip -P "$ZIPPW" archive.zip
unset ZIPPW

日本語ファイル名の文字化け

Windows で Shift_JIS / CP932 で固められた zip を Linux で展開すると文字化けします。-O で文字コードを指定します(unzip 6.0+)。

# CP932 で展開
unzip -O cp932 archive.zip
unzip -O sjis archive.zip

# unzip が -O オプションに対応していない場合
# → unar コマンドが便利
sudo apt install unar
unar archive.zip          # 自動で文字コード判定

# 7zip 系も使える
7z x archive.zip

tar で zip を解凍する

GNU tar は zip にも対応しています(一部ディストリビューションのみ):

# zip も解凍できる場合
tar xf archive.zip

# 解凍できない場合は bsdtar
sudo apt install libarchive-tools   # bsdtar 同梱
bsdtar xf archive.zip

zip 作成側(参考)

# 基本
zip -r archive.zip dir/

# 圧縮率指定(0〜9、9 が最大)
zip -9 -r archive.zip dir/

# パスワード付き
zip -e archive.zip files/      # 対話入力
zip -P SECRET archive.zip files/  # コマンドライン(履歴注意)

# 除外
zip -r archive.zip dir/ -x '*.log' 'dir/tmp/*'

# 既存 zip に追加
zip archive.zip newfile.txt

# 内容を入れ替え
zip -u archive.zip changed.txt

Windows との互換性

項目注意
ファイル名CP932 ↔ UTF-8 で化けやすい。-O cp932
パス区切りzip は / 内部使用。Windows の \ は変換される
大文字小文字NTFS は区別しないが Linux は区別。重複名で上書き事故
属性UNIX パーミッション(rwxr-xr-x)は通常保持される
暗号化方式古い ZipCrypto は危殆化。AES-256 は unzip 6.x で対応

FAQ

Q: zip 作成時に macOS の .DS_Store が混ざる
A: zip -r out.zip dir -x "*.DS_Store" で除外。または find ... -delete で先に消す。

Q: 巨大 zip を分割解凍したい
A: zip 自体に分割機能あり: zip -s 100m archive.zip dir/archive.z01, archive.z02 ...。解凍は cat archive.z* > merged.zip; unzip merged.zip or unzip archive.zip

Q: パスワード付き zip を解析したい
A: fcrackzip / john 等のツールがありますが、自身の所有 zip のみに使用してください。