Linux / コマンド / unzip - ZIP ファイルの一覧確認と安全な解凍

unzipはZIPアーカイブ内のファイル一覧を確認し、ファイルを抽出します。解凍する前にメンバー名と宛先を確認すると、既存ファイルの上書きや予期しないパス生成を減らすことができます。

基本的には現在のディレクトリに解凍します。-dで対象ディレクトリを指定し、-lで一覧を確認し、-tで圧縮データのエラーをチェックできます。-nは既存ファイルをスキップし、-oは確認せずに上書きするため、特に注意が必要です。

基本的な文法

unzip [オプション] アーカイブ.zip [-d 対象ディレクトリ]

インストールされている実装とオプションは、配布版によって異なる場合があります。man unzipで現在のシステムの説明を確認してください。

使用例

圧縮ファイル一覧の確認

入力のproject.zipを用意し、抽出前に内部パスと項目を確認します。練習用ZIPの作成はzipによるアーカイブ作成を参照してください。

unzip -l project.zip

空の対象ディレクトリに抽出

restore/が新しい空の作業先であることを確認して展開します。mkdir -pは既存ディレクトリを空にするコマンドではありません。展開後は、一覧にあったファイルがその配下に作られたことを確認してください。

mkdir -p restore
unzip project.zip -d restore/

既存ファイルはスキップ

同じ名前のファイルを保持する必要があるときは、-nを使用します。

unzip -n project.zip -d restore/

解凍する前にパスと一覧を確認してください

unzip -Z -1は、圧縮を解かずにZIP内部のファイル名だけを1行ずつ表示します。見慣れないZIPは、まず一覧とパスを確認してください。

unzip -Z -1 bundle.zip

例の出力:

docs/readme.txt
images/logo.png

実際の展開ではunzip bundle.zip -d 対象ディレクトリのように保存先を分けます。例の一覧は説明用で、実際の名前はZIPによって異なります。unzip -tはデータを内部で解凍して整合性を検査しますが、送信者の信頼性やプログラムの安全性は保証しません。出所が不明な実行ファイルを展開直後に実行しないでください。

主なオプションと形式

オプション・形式 説明
-l ZIP内のファイル名やサイズなどを一覧表示します。
-t ファイルを抽出せずに圧縮データを検査します。
-d ディレクトリ 抽出する目的地ディレクトリを指定します。
-n 既存のファイルを上書きしません。
-o 確認なしに既存のファイルを上書きします。

使用する際の注意点

出所を信頼できないZIPファイルは管理者権限で解凍せず、隔離されたディレクトリでまず一覧を確認してください。アーカイブ内のパスやシンボリックリンク、ディスクの空き容量を確認し、-o の自動上書きは避けましょう。圧縮ファイルのチェック-tがファイル内容の安全性まで保証するものではありません。

よくある質問

既存のファイルに触れずにZIPを解凍するには?

別の空ディレクトリを指定するのが最も明確です。既存のディレクトリに解凍する場合は-nで同名のファイルをスキップしてください。

公式ドキュメント

オプションの正確な動作や実装ごとの差はunzip 関連の公式ドキュメントで確認できます。