UNIX/Linuxの部屋 unzipコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド unzip ZIP 形式のアーカイブを伸長・展開する (解凍) このエントリーをはてなブックマークに追加

unzip コマンドは、ZIP 形式のアーカイブを伸長 (解凍)・展開することができる。UNIX/Linux 界隈では tar + gzip/bzip2 が主流ではあるものの、一部では ZIP 形式でのファイル配布も使われている。



unzip コマンドの基本的な使い方
引数に zip ファイル名を渡すことで、カレントディレクトリにファイルを伸張・展開する。
% unzip exmaple.zip
Archive: exmaple.zip
inflating: sample1.txt
inflating: sample2.txt
inflating: sample3.txt
inflating: sample4.dat

すでにファイルが存在する場合、
replace sample1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename:
と表示されるので、
上書き(y)/スキップ(n)/以降すべて上書き(A)/以降すべてスキップ(N)/新しいファイル名で展開(R)
を選択する。

なお、ZIP アーカイブに含まれているファイル一覧を見るには、-l オプションを使う。
% unzip -l foo.zip
Archive: foo.zip
Length Date Time Name
------ ---- ---- ----
6254 09-02-98 14:55 readme
3490 07-04-98 00:34 foo.c
8677 06-08-98 14:25 makefile
...

-d オプションで、展開先のディレクトリを指定できる。
% unzip foo.zip -d extract_dir
⇒ ディレクトリ extract_dir にファイルを展開

unzip コマンドのオプション
-l … ファイル一覧を表示する。
% unzip -l foo.zip
Archive: foo.zip
Length Date Time Name
------ ---- ---- ----
6254 09-02-98 14:55 readme
3490 07-04-98 00:34 foo.c
8677 06-08-98 14:25 makefile
...
-Z … -l より詳細なファイルの情報を表示する。zipinfo コマンドと同等の動作をする。
-p … ファイル内容を標準出力に出力する。
-o … 既に展開済みのファイルが存在しても、zip アーカイブに含まれるファイルで上書きする。
replace sample1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename:
にて、常に y を選択するのと同じ。
-f … 既に展開済みのファイルについて、zip アーカイブ内により新しいファイルが存在した場合のみ、上書きする。展開済みでないファイルはスキップされる。
replace sample1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename:
にて、常に n を選択するのと同じ。
-n … 既に展開済みのファイルはスキップし、まだ展開されていないファイルのみ展開する。
-t … zip ファイルの展開テストを行い、破損していないことを確認する。
% unzip -t example.zip
Archive: example.zip
testing: sample1.txt OK
testing: sample2.txt OK
testing: sample3.txt OK
testing: sample4.dat OK
No errors detected in compressed data of example.zip.
⇒ 問題なし

unzip パッケージについて
unzip はコマンド名であるが、Info-ZIP というグループが作成・メンテナンスしているパッケージ名でもある。unzip パッケージには以下のコマンドが含まれている。
unzip zip ファイルを伸張・展開する
funzip 標準入力からの入力に特化した unzip
unzipsfx 自己展開ファイル生成用バイナリ
zipgrep zip ファイルのまま grep する
zipinfo zip ファイル情報の表示

他の圧縮・伸長コマンドや、マルチコア対応版については下記項目を参照のこと。
>> FreeBSDオンラインマニュアル(man) FreeBSD unzip(1)