Linuxコマンド:ZIP形式ファイルを解凍する(unzip)

Linuxコマンド:ZIP形式ファイルを解凍する(unzip)

Linux環境では、ZIP形式ファイルを解凍するときに「unzipコマンド」を利用します。ここでは、unzipコマンドでZIP形式ファイルを解凍する方法について紹介します。

zipコマンドを使用して、ファイルやディレクトリを圧縮する方法については以下の記事を御覧ください。

Linuxコマンド:ファイルやディレクトリを圧縮する(zip)
ここでは、Linux環境でZIPコマンドを使ってファイルやディレクトリを圧縮する方法を紹介します。
Linuxコマンド:ZIPファイルの中身を確認する(zipinfo)
ここでは、Linux環境でZIPファイルを解凍せずに格納されているファイルの一覧やファイルサイズなどの情報を確認できるzipinfoコマンドの使い方を紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

# yum list installed |grep ^unzip
unzip.x86_64    6.0-19.el7     @base

書式とオプション

書式

unzip [オプション] ZIPファイル 対象ファイル

オプション

おもなオプションは、次のとおりです。

オプション説明
-oファイルを確認なしに上書きする
-nファイルを上書きしない
-x解凍しないファイルを指定する
-d指定したディレクトリに解凍する
-jディレクトリを作成せずに解凍する
-pパイプで受け取ったファイルを解凍する
-lZIPファイルに格納されているファイルを一覧表示する
-tZIPファイルに破損がないかテストする
-zZIPファイルのコメントを表示する
-v動作中のメッセージを詳しくする

使用例

ZIP形式ファイルを解凍する

「file_1.dat」と「file_5.dat」が含まれるZIP形式ファイル「archive.zip」を解凍するには、次のように実行します。

# unzip archive.zip

Archive: archive.zip
  inflating: file_1.dat 
  inflating: file_5.dat

解凍先に同名のファイルがある場合は、以下のように、どのように処理するかを選択するプロンプトが表示されます。

replace file_1.dat? [y]es, [n]o, [A]ll, [N]one, [r]ename:

上書きする場合は「y」、解凍しない場合は「n」、全て上書きする場合は大文字で「A」、全て解凍しない場合は大文字で「N」、ファイル名を変更する場合は「r」を入力します。

なお、上記で紹介しているオプションをあらかじめ指定することで、解凍時の動作を決めておくこともできます。

特定のファイルのみ解凍する

unzipコマンドでは、ZIP形式ファイルから特定のファイルのみを解凍することもできます。

たとえば、ZIP形式ファイル「archive.zip」からファイル「file_1.dat」だけを解凍するには、次のように実行します。

# unzip archive.zip file_1.dat

Archive: archive.zip
  inflating: file_1.dat

ちなみに、解凍するファイルの指定には「*(アスタリスク)」などのワイルドカードも使用できます。

ZIP形式ファイルの内容を表示する

解凍せずに、ZIP形式ファイルに格納されているファイルを確認するには、オプション「-l」をつけて実行します。

# unzip -l archive.zip 

Archive:  archive.zip
  Length     Date    Time   Name
--------- ---------- -----  ----
10485760  11-10-2018 16:22  file_1.dat
10485760  11-10-2018 16:22  file_5.dat
---------                   -------
20971520                    2 files

あとがき

ZIP形式ファイルは、Linux環境メインならあまり利用する機会はないかもしれませんが、Windows環境では最も利用されている圧縮ファイルフォーマットです。

Windows環境とLinux環境でファイルをやり取りするなら、Linux環境にzipコマンドとunzipコマンドをインストールしておくと、なにかと便利かもしれませんね。