【2026年7月最新】unzipコマンド完全ガイド|Linuxファイル展開の全オプション・日本語対応・実運用例まで徹底解説
この記事の内容
unzip ファイル名.zipと叩くだけで済む場面はほとんどありません。展開先ディレクトリを指定したい、日本語ファイル名が文字化けする、パスワード付きZIPを扱いたい、スクリプトで自動化したい——こういった実務ニーズが必ず出てきます。本記事は実際にLinuxサーバー(Ubuntu/CentOS/Debian)での業務自動化を行うGENAIが、実運用で得た知見をもとに執筆しています。「コマンドのリファレンスページをそのまま日本語に訳しただけ」ではなく、ハマりポイントと回避策を中心に解説します。
01 BASICS unzipコマンドとは(zip形式の歴史・用途)
unzipコマンドは、ZIP形式で圧縮されたアーカイブファイルを展開(解凍)するLinuxのコマンドラインツールです。対応するZIP形式の作成コマンドはzipであり、セットで使われることが多いです。
📚 用語解説
ZIP形式:1989年にPKWARE社のPhil Katzが開発したファイル圧縮・アーカイブ形式。拡張子は.zip。複数ファイルを1つにまとめる「アーカイブ」機能と、データを小さくする「圧縮」機能を兼ね備える。現在はISO/IEC 21320-1として標準化されている。
ZIP形式が登場したのは1989年ですが、2026年現在でもWindowsとのファイルやり取り、Webサービスのバックアップダウンロード、デプロイパッケージの配布など、あらゆる場面で使われ続けています。その理由はシンプルです。
unzipコマンドはほとんどのLinuxディストリビューションに標準搭載、またはパッケージマネージャで簡単にインストールできます。内部的にはDEFLATEアルゴリズム(zlib)を使った圧縮展開を行いますが、実用上は意識する必要はありません。
📚 用語解説
DEFLATE:ZIP/gzip/PNG等で使われる圧縮アルゴリズム。LZ77とハフマン符号化を組み合わせたもので、フィル・カッツが開発。現在はzlibライブラリとして広く実装されており、HTTP/2のヘッダー圧縮にも応用されている。
また、ZIPには複数の圧縮方式が定義されています。unzipが対応している主な圧縮方式は以下のとおりです。
| 圧縮方式 | コード番号 | 特徴 | 主な用途 |
|---|---|---|---|
| Store(無圧縮) | 0 | ファイルをそのまま格納。展開が最速 | 既に圧縮済みのファイル(JPG等) |
| Deflate | 8 | 汎用的なLZ77+ハフマン圧縮。バランスが良い | 一般テキスト・バイナリファイル |
| Deflate64 | 9 | Deflateの拡張版。やや高圧縮 | 大容量ファイル(Windows ZIPで使用) |
| BZIP2 | 12 | 高圧縮だが速度は遅い | テキスト中心のアーカイブ |
| LZMA | 14 | 最高クラスの圧縮率 | 7-Zipでも使用 |
| AES暗号化 | 99 | AES-128/256暗号化。パスワード保護 | セキュリティが必要な配布物 |
Linuxでは圧縮(zipコマンド)と展開(unzipコマンド)は別々のバイナリです。zipパッケージはzip/unzipを含みますが、ディストリビューションによってはunzipのみ個別インストールが必要な場合もあります。
02 INSTALL インストール確認と基本構文
unzipが使える状態かどうかは、まずバージョン確認コマンドで確かめます。
# バージョン確認
unzip -v
# インストールされていない場合のエラー例
# -bash: unzip: command not found
インストールされていない場合は、各ディストリビューションのパッケージマネージャでインストールします。
# Ubuntu / Debian系
apt-get install unzip
# CentOS / RHEL系(yum)
yum install unzip
# CentOS 8+ / Fedora系(dnf)
dnf install unzip
# Alpine Linux
apk add unzip
# macOS(Homebrew)
brew install unzip
apk add unzipを覚えておくと便利です。unzipの基本構文は以下のとおりです。
unzip [オプション] ファイル名.zip [展開するファイルのパターン...] [-d 展開先ディレクトリ]
| 構文要素 | 説明 | 例 |
|---|---|---|
| オプション | -l/-o/-d/-P等のフラグ。複数同時指定可 | -o -d /home/user/output/ |
| ファイル名.zip | 展開対象のZIPファイル(必須) | archive.zip |
| ファイルパターン | ZIP内の特定ファイルだけ展開(省略で全展開) | *.txt doc/*.pdf |
| -d 展開先 | 展開先ディレクトリ指定(末尾に配置) | -d /home/user/work/ |
📚 用語解説
アーカイブ:複数のファイルやディレクトリを1つにまとめたファイルのこと。ZIPやtarが代表例。圧縮を伴う場合と伴わない場合がある。Linuxでは「tarアーカイブ」が伝統的に使われるが、クロスプラットフォームでは「ZIPアーカイブ」が一般的。
03 OPTIONS 全オプション一覧(表形式で詳解)
unzipのオプションは「動作モードを変えるフラグ」と「出力を制御するフラグ」に大別できます。以下に主要オプションをすべて解説します。
主要オプション一覧
| オプション | 機能 | 使用例 | 備考 |
|---|---|---|---|
-l | ZIPの中身を一覧表示(展開しない) | unzip -l archive.zip | ファイルサイズ・更新日時・名前が分かる |
-d DIR | 指定ディレクトリに展開 | unzip archive.zip -d /home/user/out/ | ディレクトリが存在しない場合は自動作成 |
-o | 既存ファイルを上書き確認なしで展開 | unzip -o archive.zip | バッチ処理時に必須 |
-n | 既存ファイルを上書きしない | unzip -n archive.zip | -oと逆の動作 |
-P パスワード | パスワード付きZIPを展開 | unzip -P mypass archive.zip | シェル履歴に残るため注意 |
-j | ディレクトリ構造を無視してフラット展開 | unzip -j archive.zip | 全ファイルをカレントに展開 |
-q | 静粛モード(出力を抑制) | unzip -q archive.zip | スクリプトで利用する場合 |
-qq | 完全静粛モード | unzip -qq archive.zip | エラーも抑制するため注意 |
-v | 詳細情報を表示 | unzip -v archive.zip | 圧縮率・CRCも表示 |
-t | ZIPファイルの整合性テスト | unzip -t archive.zip | 破損確認に使う |
-x パターン | 指定パターンのファイルを除外 | unzip archive.zip -x "*.log" | 不要ファイルを除いて展開 |
-O 文字コード | ファイル名の文字コード指定 | unzip -O CP932 archive.zip | 日本語ファイル名対策 |
-UU | Unicodeファイル名を無効化 | unzip -UU archive.zip | 文字化け対策の一手段 |
-a | テキストファイルの改行コード変換 | unzip -a archive.zip | WindowsとLinux間の変換 |
-C | ファイル名の大文字小文字を区別しない | unzip -C archive.zip *.TXT | Windows作成ZIPに有効 |
-X | 所有者・グループ情報を保持 | unzip -X archive.zip | root権限時のみ有効 |
-M | moreコマンドのようにページ表示 | unzip -M -l archive.zip | 長い一覧を見やすくする |
-Z | zipinfoモードで詳細情報表示 | unzip -Z archive.zip | zipinfoコマンドと同等 |
-oと-dの組み合わせです。「上書き確認なしで、特定のディレクトリに展開」というのがスクリプト自動化でほぼ必須になります。unzipのオプションは自由に組み合わせられます。例えばunzip -oq archive.zip -d /home/user/output/のように、複数のフラグをまとめて指定できます。ただし-dの後には必ずディレクトリパスが続く点に注意してください。
04 BASIC USAGE 基本的な展開方法
まずはもっとも基本的な使い方から確認します。カレントディレクトリにあるZIPファイルを展開する場合です。
# カレントディレクトリに展開
unzip archive.zip
# 実行結果の例
Archive: archive.zip
inflating: README.md
inflating: src/main.py
inflating: src/utils.py
creating: images/
inflating: images/logo.png
展開時に表示される各行の先頭キーワードは、処理の種類を示しています。
| キーワード | 意味 |
|---|---|
inflating: | DEFLATEで圧縮されたファイルを展開した |
extracting: | 圧縮なし(Store)のファイルを取り出した |
creating: | ディレクトリを作成した |
linking: | シンボリックリンクを作成した |
特定のファイルだけ展開する
ZIPの中から特定のファイルだけを展開することもできます。ワイルドカードを使ったパターン指定が可能です。
# 特定のファイルだけ展開
unzip archive.zip README.md
# ワイルドカードで拡張子指定(シェルの展開を防ぐためクォートする)
unzip archive.zip "*.txt"
# 複数のパターンを指定
unzip archive.zip "*.py" "*.md"
# srcディレクトリ以下のファイルのみ展開
unzip archive.zip "src/*"
シェルがワイルドカードを展開してしまうため、*.txtのようなパターンは必ずシングルクォートかダブルクォートで囲んでください。クォートなしで実行すると、カレントディレクトリの.txtファイルに展開先が変わってしまうことがあります。
ZIPファイルが別ディレクトリにある場合
# ZIPのパスを絶対パスで指定
unzip /home/user/downloads/archive.zip
# 相対パスでも指定可能
unzip ../downloads/archive.zip
AI導入・業務自動化でお悩みですか?
AI鬼管理では、LINEで無料相談を受付中です。
05 -d OPTION 特定ディレクトリへ展開する(-dオプション)
-dオプションは実務で最もよく使うオプションの一つです。展開先のディレクトリを明示的に指定することで、カレントディレクトリが散らかるのを防げます。
# /home/user/work/ ディレクトリに展開
unzip archive.zip -d /home/user/work/
# ディレクトリが存在しない場合は自動作成される
unzip archive.zip -d /home/user/new-folder/
# 相対パスも指定可能
unzip archive.zip -d ./output/
-dオプションはコマンドの最後に書くのが一般的です。ファイルパターンを指定する場合も、unzip archive.zip "*.py" -d /home/user/python_files/のように末尾に置きます。
-d /home/user/backups/$(date +%Y%m%d)/のような書き方が便利です。# タイムスタンプ付きディレクトリに展開(バックアップ運用例)
DEST="/home/user/backups/$(date +%Y%m%d_%H%M%S)"
unzip -o archive.zip -d "$DEST"
echo "展開先: $DEST"
また、複数のZIPを一括展開するループ処理では-dオプションが特に重要です。展開先をZIPのベース名から自動生成すると管理しやすくなります。
# 複数ZIPを個別ディレクトリに展開する例
for zipfile in /home/user/zips/*.zip; do
basename="${zipfile%.zip}"
dirname="${basename##*/}"
unzip -o "$zipfile" -d "/home/user/extracted/$dirname/"
echo "展開完了: $dirname"
done
-dで個別ディレクトリに展開06 -l OPTION 中身の確認だけする(-lオプション)
-lオプションは展開せずにZIPの中身の一覧を表示します。ダウンロードしたZIPが何を含んでいるか事前に確認したいときに使います。
# 中身の一覧を表示(展開しない)
unzip -l archive.zip
# 実行結果例
Archive: archive.zip
Length Date Time Name
--------- ---------- ----- ----
1024 2026-07-01 10:00 README.md
45678 2026-07-01 10:01 src/main.py
2048 2026-07-01 10:01 src/utils.py
89012 2026-07-01 10:02 images/logo.png
--------- -------
137762 4 files
-lオプションで表示される情報は以下のとおりです。
| 列名 | 内容 |
|---|---|
| Length | 展開後のファイルサイズ(バイト) |
| Date | ファイルの更新日 |
| Time | ファイルの更新時刻 |
| Name | ZIP内のパス(ディレクトリ構造を含む) |
-vオプションで詳細情報を確認する
-vオプションでは圧縮率やCRCチェックサム情報も表示されます。
# 詳細情報付きで一覧表示
unzip -v archive.zip
# 実行結果例
Archive: archive.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
1024 Defl:N 428 58% 2026-07-01 10:00 a1b2c3d4 README.md
45678 Defl:N 18234 60% 2026-07-01 10:01 e5f6a7b8 src/main.py
-------- ------- --- -------
46702 18662 60% 2 files
📚 用語解説
CRC-32:Cyclic Redundancy Check(巡回冗長検査)の32ビット版。ファイルの整合性を確認するためのチェックサム。展開後のファイルのCRC-32が、ZIP内に記録されたCRC-32と一致しない場合は破損を意味する。
unzip -t archive.zipも使えます。展開せずにCRCテストだけ行います。# ZIPファイルの整合性テスト(展開せず)
unzip -t archive.zip
# 結果例(正常)
Archive: archive.zip
testing: README.md OK
testing: src/main.py OK
No errors detected in compressed data in archive.zip.
07 -o OPTION 上書き確認をスキップする(-oオプション)
デフォルトではunzipは既存ファイルに対して上書き確認を行います。スクリプトでの自動化時にはこの確認を省略する必要があります。
# デフォルトの動作(上書き確認が発生する)
$ unzip archive.zip
Archive: archive.zip
replace README.md? [y]es, [n]o, [A]ll, [N]one, [r]ename:
# ← ここで入力待ちになる(スクリプトではハング)
# -oオプションで確認をスキップ
unzip -o archive.zip
cronやCI/CDパイプラインでunzipを使う場合、-oを付け忘れると入力待ちでプロセスがハングします。自動化スクリプトでは必ず-oを指定してください。
逆に、既存ファイルを絶対に上書きしたくない場合は-nオプションを使います。
# 既存ファイルを上書きしない(スキップ)
unzip -n archive.zip
# 実行結果例
Archive: archive.zip
# README.md already exists; not extracting.
inflating: src/new-file.py
| オプション | 既存ファイルの扱い | 主な用途 |
|---|---|---|
| なし(デフォルト) | ファイルごとに上書き確認 | 手動での慎重な展開 |
-o | 確認なしで上書き | スクリプト・自動化・CI/CD |
-n | 上書きせずスキップ | 差分追加・初回のみ展開 |
-oが基本です。一方、設定ファイルを誤って上書きしたくない場面では-nが安全です。08 ENCODING 文字コード問題の解決(日本語ファイル名対策)
unzipの日本語ファイル名問題は、Linux上で最もよくハマるポイントです。Windowsで作成したZIPは日本語ファイル名がShift-JIS(CP932)でエンコードされていることが多く、Linuxのunzipはデフォルトでこれを正しく解釈できません。
📚 用語解説
Shift-JIS(CP932):Windowsで伝統的に使われてきた日本語文字コード。JISコードとシフトされたビットパターンを組み合わせた独自形式。Microsoft版はCP932と呼ばれる。LinuxはデフォルトでUTF-8を使うため、CP932のファイル名は文字化けする。
文字化けの典型的な症状と3つの対処法を解説します。
# 問題のある展開(日本語が文字化けする)
$ unzip windows-archive.zip
Archive: windows-archive.zip
inflating: 縺ュ縺壹∩縺ョ繝輔ぃ繧、繝ォ.txt ← 文字化け
対処法1:-Oオプション(最も確実)
-Oオプションでファイル名の文字コードを明示的に指定します。Windowsで作ったZIPにはCP932を指定するのが基本です。
# CP932(Shift-JIS)として解釈して展開
unzip -O CP932 windows-archive.zip
# GBK(中国語)の場合
unzip -O GBK chinese-archive.zip
-Oオプションは比較的新しいunzipバージョン(6.0以降)で利用可能ですが、Ubuntuの標準パッケージでは動作しないことがあります。unzip -vでバージョンを確認し、動作しない場合は対処法2または3を試してください。
対処法2:unarコマンドを使う
unarコマンドは文字コードを自動判定してくれるため、日本語ファイル名問題が起きにくいです。
# unarのインストール
apt-get install unar # Ubuntu/Debian
yum install unar # CentOS/RHEL
# 自動文字コード判定で展開
unar windows-archive.zip
# 展開先を指定
unar -o /home/user/output/ windows-archive.zip
対処法3:convmvで後から変換
一度展開した後で、ファイル名の文字コードを変換する方法です。展開済みのファイルに対して後から適用できます。
# convmvのインストール
apt-get install convmv
# まず展開(文字化けしたままでOK)
unzip windows-archive.zip -d /home/user/output/
# 文字コードをShift-JISからUTF-8に変換(--notest を外すと実際に変換)
convmv -f cp932 -t utf-8 -r /home/user/output/ --notest
| 対処法 | コマンド | メリット | デメリット |
|---|---|---|---|
-O CP932 | unzip本体 | 追加ツール不要 | バージョン依存 |
| unar | 別ツール | 自動判定・信頼性が高い | 追加インストール必要 |
| convmv | 後処理ツール | 展開済みファイルにも適用可 | 2段階作業が必要 |
09 PASSWORD パスワード付きZIP(-Pオプション)
ZIPにはパスワード保護機能があります。unzipで展開するには-Pオプションでパスワードを指定します。
# パスワードを直接指定
unzip -P mypassword secret.zip
# 展開先も指定する場合
unzip -P mypassword secret.zip -d /home/user/secure_output/
-Pでパスワードを直接指定すると、historyコマンドやプロセスリスト(ps)にパスワードが表示されてしまいます。本番環境・共有サーバーでは避けるべきです。代わりに対話的入力か環境変数を使いましょう。
より安全なパスワード入力方法
# 対話的にパスワードを入力(履歴に残らない)
unzip secret.zip
# "Archive password:" プロンプトが表示され、入力は画面に表示されない
# 環境変数経由(スクリプトで使う場合の安全策)
# .envファイルに ZIP_PASSWORD=... を書いてsourceする
source /home/user/.env
echo "$ZIP_PASSWORD" | unzip -P "$(cat -)" secret.zip 2>/dev/null
📚 用語解説
ZIPの暗号化強度:従来のZIPパスワード(ZipCrypto)はAES暗号化ではなく弱い独自暗号で、現代的な環境では容易に解読されます。機密性の高いデータにはAES-256暗号化(WinZip AE形式)か、GnuPGによる暗号化を使うべきです。unzipはAES-256展開にも対応しています。
unzip -P ""でパスワードが空文字のZIPを展開できます。ZIPの中身を確認したいが、パスワードが不明な場合はunzip -lでファイル一覧だけは見られることがあります(暗号化されていない部分の情報)。
10 TAR VS ZIP tarとの違い・zipとunzipの使い分け
LinuxではtarコマンドとZIPコマンドの両方が使われます。初心者は「どちらを使えばいいのか」迷いがちですが、用途によって明確な基準があります。
| 比較項目 | tar(.tar.gz/.tar.bz2/.tar.xz) | zip/unzip(.zip) |
|---|---|---|
| 主な使用場面 | Linux内でのバックアップ・配布 | Windowsとのやり取り・汎用配布 |
| パーミッション保持 | できる(uid/gidも保持) | 基本的にできない |
| 圧縮アルゴリズム | gzip/bzip2/xz等を外部コマンドで組み合わせ | Deflate等をZIP形式内に内包 |
| 個別ファイル取り出し | ファイルを順番に読む必要がある | 任意のファイルにランダムアクセス可 |
| Windowsとの互換性 | WSL等でないと扱いにくい | 標準サポート(エクスプローラーで解凍可) |
| パスワード保護 | 外部ツール(gpg等)が必要 | 標準でサポート |
| 分割アーカイブ | 標準サポートあり | zip -sで分割可(unzipは対応限定的) |
| ファイル名の文字コード | UTF-8で問題なし | Windows作成時はShift-JISで問題あり |
どちらを使うか迷ったときの判断フロー
具体的なケースごとの推奨を整理します。
📚 用語解説
tar:Tape ARchiveの略。元々はテープドライブへのバックアップ用に開発されたLinux標準のアーカイブツール。tarコマンド自体に圧縮機能はなく、gzip/bzip2/xzと組み合わせて使う。Linux/Unix系OSではデファクトスタンダード。
11 SHELL SCRIPT シェルスクリプトでのunzip活用
unzipをシェルスクリプトに組み込むことで、ファイル処理を完全に自動化できます。実務でよく使うパターンを紹介します。
パターン1:展開の成否を判定する
#!/bin/bash
ZIP_FILE="/home/user/uploads/data.zip"
OUTPUT_DIR="/home/user/extracted/"
if unzip -o "$ZIP_FILE" -d "$OUTPUT_DIR"; then
echo "展開成功: $OUTPUT_DIR"
else
echo "展開失敗: $ZIP_FILE" >&2
exit 1
fi
パターン2:展開後にZIPを削除する
#!/bin/bash
ZIP_FILE="/home/user/inbox/report.zip"
OUTPUT_DIR="/home/user/reports/"
unzip -o -q "$ZIP_FILE" -d "$OUTPUT_DIR"
RESULT=$?
if [ $RESULT -eq 0 ]; then
rm "$ZIP_FILE"
echo "展開完了・ZIP削除: $ZIP_FILE"
else
echo "展開エラー(コード: $RESULT)" >&2
exit $RESULT
fi
パターン3:ディレクトリ内の全ZIPを一括処理
#!/bin/bash
INBOX="/home/user/inbox/"
OUTBOX="/home/user/outbox/"
ZIP_COUNT=0
ERROR_COUNT=0
for ZIP_FILE in "$INBOX"*.zip; do
# ZIPが存在するか確認
[ -f "$ZIP_FILE" ] || continue
BASENAME="$(basename "$ZIP_FILE" .zip)"
DEST="$OUTBOX$BASENAME/"
echo "処理中: $BASENAME"
if unzip -o -q "$ZIP_FILE" -d "$DEST"; then
ZIP_COUNT=$((ZIP_COUNT + 1))
else
echo " エラー: $ZIP_FILE" >&2
ERROR_COUNT=$((ERROR_COUNT + 1))
fi
done
echo "完了: 成功 $ZIP_COUNT 件 / エラー $ERROR_COUNT 件"
パターン4:ZIPの整合性チェック後に展開
#!/bin/bash
ZIP_FILE="/home/user/delivery/package.zip"
OUTPUT_DIR="/home/user/production/"
# まず整合性テスト
echo "整合性チェック中..."
if ! unzip -t -q "$ZIP_FILE"; then
echo "ZIPファイルが破損しています: $ZIP_FILE" >&2
exit 1
fi
echo "整合性OK。展開します..."
unzip -o "$ZIP_FILE" -d "$OUTPUT_DIR"
echo "展開完了: $OUTPUT_DIR"
unzipは成功時に0、警告時に1、エラー時に2以上を返します。スクリプトで判定する場合は$?またはif unzip ...で確認できます。-qオプションを使うと出力が抑制されますが、終了コードは変わらず正確に返されます。
set -e(エラーで即終了)と組み合わせると安全です。ただしset -eはサブシェルのエラーも補足するため、意図的に失敗を許容したい箇所はcommand || trueで回避します。AI導入・業務自動化でお悩みですか?
AI鬼管理では、LINEで無料相談を受付中です。
12 GENAI CASE GENAI実運用でのファイル管理自動化
GENAIでは複数のクライアントから定期的にデータZIPを受け取り、自動処理するフローを構築しています。その実例を紹介します。
ユースケース1:クライアントからのレポートZIP自動処理
クライアントからSFTPまたはメールで届くZIPファイルを自動展開し、CSVデータをデータベースにインポートするフローです。
#!/bin/bash
# /home/user/scripts/process-client-zip.sh
# クライアントから受信したZIPを自動処理
WATCH_DIR="/home/user/sftp-inbox/"
PROCESS_DIR="/home/user/processing/"
DONE_DIR="/home/user/done/"
process_zip() {
local ZIP_FILE="$1"
local BASENAME="$(basename "$ZIP_FILE" .zip)"
local DEST="$PROCESS_DIR$BASENAME/"
echo "[$(date)] 処理開始: $BASENAME"
# 整合性チェック
if ! unzip -t -q "$ZIP_FILE" 2>/dev/null; then
echo "[ERROR] ZIP破損: $ZIP_FILE"
return 1
fi
# unarで文字コード自動判定展開
if unar -o "$DEST" "$ZIP_FILE" > /dev/null 2>&1; then
echo "[OK] 展開完了: $DEST"
# 処理済みディレクトリに移動
mv "$ZIP_FILE" "$DONE_DIR"
else
echo "[ERROR] 展開失敗: $ZIP_FILE"
return 1
fi
}
# 監視ディレクトリ内の全ZIPを処理
for ZIP in "$WATCH_DIR"*.zip; do
[ -f "$ZIP" ] && process_zip "$ZIP"
done
ユースケース2:Webアプリのバックアップ自動展開
WordPressバックアッププラグインが生成するZIPを自動展開してステージング環境に適用するフローです。
#!/bin/bash
# WordPress バックアップZIPをステージング環境に適用
BACKUP_DIR="/home/user/wp-backups/"
STAGE_DIR="/home/user/staging/wordpress/"
# 最新のバックアップZIPを特定
LATEST_ZIP="$(ls -t "$BACKUP_DIR"*.zip 2>/dev/null | head -1)"
if [ -z "$LATEST_ZIP" ]; then
echo "バックアップZIPが見つかりません"
exit 1
fi
echo "適用するバックアップ: $LATEST_ZIP"
# ステージングディレクトリをバックアップ後に展開
STAGE_BACKUP="$STAGE_DIR.backup.$(date +%Y%m%d%H%M%S)"
mv "$STAGE_DIR" "$STAGE_BACKUP"
# 展開
unzip -o -q "$LATEST_ZIP" -d "$STAGE_DIR"
echo "ステージング更新完了"
13 CLAUDE CODE Claude CodeにLinuxファイル操作を任せる
ここまでunzipコマンドの全機能を解説してきましたが、「コマンドを覚える」こと自体が目的ではありません。2026年現在、AIを使えばLinuxコマンドの学習コストを大幅に削減できます。
Claude CodeはLinuxコマンドの選択・組み合わせ・シェルスクリプト化を自然言語で指示するだけで実行してくれます。特にunzipのような「オプションが多く、状況によって使い方が変わる」コマンドで威力を発揮します。
Claude Codeに任せられるunzip関連タスク
Claude Codeは単にコマンドを教えるだけでなく、実際にターミナルでコマンドを実行して結果を確認しながら作業を進めます。つまり「指示するだけで、ファイル処理が完了する」ところまで自動化できます。
AI鬼管理のLinuxファイル操作自動化支援
AI鬼管理では、Claude Codeを活用したLinuxファイル操作の自動化支援を行っています。unzipを含むLinuxコマンドの実務活用から、シェルスクリプトによる業務自動化の構築まで、非エンジニアの方でも導入できる形でサポートします。
AI AUTOMATION
Linuxファイル操作を丸ごと自動化する
unzip・tar・シェルスクリプトをClaude Codeで完全自動化。
手作業ゼロのファイル管理フローを構築します。
よくある質問(FAQ)
Q. unzipコマンドがインストールされていない場合はどうすればいいですか?
A. apt-get install unzip(Ubuntu/Debian)またはyum install unzip(CentOS/RHEL)でインストールできます。Dockerコンテナ内でAlpine Linuxを使っている場合はapk add unzipです。インストールにはroot権限またはsudo権限が必要です。
Q. ZIPファイルの日本語ファイル名が文字化けします。どう対処すればいいですか?
A. Windowsで作成したZIPファイルは日本語ファイル名がShift-JIS(CP932)でエンコードされています。対処法は3つあります。①unzip -O CP932 archive.zipでオプション指定(バージョン依存)、②unarコマンドを使う(自動判定)、③展開後にconvmv -f cp932 -t utf-8 -r ./でファイル名を変換、のいずれかを試してください。最も確実なのはunarコマンドです。
Q. unzipで展開中にエラー「bad CRC」が出ました。
A. CRCエラーはZIPファイルが破損していることを意味します。ダウンロードが途中で中断された可能性があります。unzip -t archive.zipで整合性テストを実行し、エラーが出た場合はファイルを再ダウンロードしてください。ダウンロード元がMD5/SHA256チェックサムを公開している場合は照合することをお勧めします。
Q. パスワード付きZIPのパスワードを忘れてしまいました。
A. 残念ながら、適切に暗号化されたZIPのパスワードを忘れた場合、合法的な手段での復元は困難です。ただし、従来のZipCrypto暗号化(AES-256ではない方式)は脆弱であり、既知のファイルの一部が分かっている場合などに解読ツールが存在します。AES-256暗号化の場合は事実上解読不可能です。今後のためにパスワードマネージャーの活用をお勧めします。
Q. スクリプトでunzipを使うと「replace file? [y]es...」で止まります。
A. デフォルトでは既存ファイルがある場合に確認プロンプトが表示されます。スクリプトではunzip -o archive.zip(上書き許可)またはunzip -n archive.zip(上書き禁止・スキップ)のいずれかを指定してください。自動化・CI/CDでは必ず-oか-nを付けることが必須です。
Q. ZIPの一部のファイルだけ展開したいのですが、ワイルドカードがうまく動きません。
A. ワイルドカードをシェルが展開してしまう問題です。"*.txt"のようにクォートで囲んでください。unzip archive.zip "*.txt"ならZIP内の.txtファイルのみ展開されます。クォートなしだと、カレントディレクトリの.txtファイル名としてシェルが解釈してしまい、意図しない動作になります。
まとめ:unzipコマンドを使いこなして作業を自動化しよう
本記事ではunzipコマンドの全オプションから実務的な活用パターンまで解説しました。重要ポイントをまとめます。
unzip archive.zip。展開先指定は-d DIR-o(上書き)か-n(スキップ)を指定unzip -O CP932またはunarコマンド-Pだが、本番ではコマンド履歴に残らない方法を使うunzip -tを展開前に実行するAI鬼管理では、Claude Codeを使ったLinuxファイル操作の自動化を含む、業務効率化の無料相談を受け付けています。まずはLINEでお気軽にご相談ください。
FREE CONSULTATION
Linux自動化・AI活用を無料で相談
unzipを活用したファイル処理自動化から、Claude Codeによる業務効率化まで、プロが直接アドバイスします。
LINEで無料相談する(0円)Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。


