unzipコマンドは、LinuxやmacOSのターミナル環境でZIPファイルを扱う際に最も基本かつ重要なコマンドの一つです。単にZIPを解凍するだけでなく、展開前の中身確認、ファイル破損チェック、日本語ファイル名の文字化け対策、安全な展開手順の実現など、実運用で求められる機能を幅広く備えています。
特に業務環境では、「意図せず既存ファイルを上書きしてしまった」「Windowsで作られたZIPを解凍したら日本語が読めなくなった」「不審なZIPを展開してしまい、想定外の場所にファイルが作られた」といった事故が発生しがちです。
本記事では、unzipコマンドの基本から応用、安全対策までを体系的に整理し、初学者から若手エンジニアまでが安心して使える知識を提供いたします。
※本コンテンツは「記事制作ポリシー」に基づき、正確かつ信頼性の高い情報提供を心がけております。万が一、内容に誤りや誤解を招く表現がございましたら、お手数ですが「お問い合わせ」よりご一報ください。速やかに確認・修正いたします。
unzipコマンドでできることと基本構文
unzipの基本動作(展開・一覧・テスト)
unzipコマンドは、ZIPアーカイブに対して以下の三つの主要な操作を提供します。
1つ目は展開(extract)です。
ZIPファイルに含まれるディレクトリ構造やファイルを、そのまま指定した場所へ取り出します。
2つ目は一覧表示(list)です。
実際にはファイルを書き出さず、ZIP内部にどのようなファイルが含まれているかを確認できます。これは安全確認や事前調査として非常に重要です。
3つ目はテスト(test)です。
ZIPファイルの中身を展開せずに検査し、圧縮時のCRC情報などを用いて破損がないかを確認します。
これらはすべて、unzipの公式マニュアル(manページ)でも明確に定義されている基本機能です。単なる「解凍ツール」ではなく、「検証・確認ツール」としての側面を持つ点が重要です。
zipとの役割分担と前提
ZIP形式を扱う際には、zipコマンドとunzipコマンドの役割を正しく理解する必要があります。
zip:複数のファイルやディレクトリをまとめて圧縮し、ZIPファイルを作成する
unzip:作成済みのZIPファイルを検査・展開する
業務や学習環境では、自分でZIPを作るよりも、第三者から受け取ったZIPを展開するケースの方が圧倒的に多くなります。そのためunzipでは、「安全に扱う」「失敗しない」視点が特に重要になります。
unzipコマンドの基本操作
ZIPを展開する最短例
最も基本的な使い方は、以下の形式です。
このコマンドを実行すると、ZIPファイルに含まれるファイルやディレクトリが、現在の作業ディレクトリに展開されます。
特別なオプションを指定しない場合、unzipはZIP内部のディレクトリ構造を尊重して展開を行います。
ただし、この方法は意図せず既存ファイルを上書きする可能性があるため、業務用途では注意が必要です。
展開先を指定する
展開先を明示的に指定するには、-d オプションを使用します。
この方法には以下の利点があります。
作業ディレクトリを汚さずに済む
展開結果をまとめて確認・削除できる
不審なZIPを隔離ディレクトリで扱える
特にサーバー環境では、必ず専用ディレクトリを作成してから解凍する運用を推奨します。
中身を一覧表示する
ZIPを展開する前に必ず行いたいのが、一覧表示です。
このコマンドにより、以下の情報を事前に確認できます。
含まれるファイル数
ディレクトリ構造
ファイルサイズ
不審な拡張子や過度に深い階層
一覧表示は「事故防止の第一歩」と言っても過言ではありません。
ZIPをテストして破損確認する
ZIPファイルが正常かどうかを確認するには、-t オプションを使用します。
この操作では、実際の展開は行われず、内部データの整合性のみが検証されます。
大容量のZIPや、ネットワーク経由で取得したZIPでは、展開前に必ず実行しておくと安心です。
unzipコマンドの主要オプションと使い分け
上書きを防ぐ・許可する
unzipで最も注意すべきポイントの一つが上書き挙動です。
| 方針 | オプション | 特徴 |
|---|---|---|
| 上書きしない | -n | 既存ファイルを保護できる |
| 上書きする | -o | 再展開・更新向け |
初回展開や検証用途では、必ず -n を使用してください。-o は便利ですが、誤用すると既存データを失うリスクがあります。
特定ファイルだけ展開する
ZIP内の一部ファイルのみが必要な場合、対象パスを指定できます。
大量ファイルを含むZIPから必要なものだけを抽出でき、効率的です。
除外して展開する
不要なファイルを除外するには -x を使用します。