LinuxコマンドでZIPファイルを解凍せずに内容を参照する方法(zipinfo)

LinuxコマンドでZIPファイルを解凍せずに内容を参照する方法(zipinfo)

「zipinfo」コマンドは、ZIPファイルを解凍せずに格納されているファイルの一覧やファイルサイズなどを詳細に表示できる便利なコマンドです。

ここでは「zipinfo」コマンドの基本的な使用方法について紹介します。

unzipコマンドでもオプション「-l」を付けて実行することで、解凍せずに内容を確認できますが、zipinfoコマンドではより詳細に内容を表示できます。

ZIPファイルの内容を参照する

Linux環境で、ZIPファイルを解凍せずに内容を参照するときはzipinfoコマンドを利用します。

書式

zipinfo [オプション] ZIPファイル名 [対象ファイル...] [-x 除外ファイル...]

※[ ]は省略可能な引数を示しています

オプション

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

オプション説明
-1ファイル名のみを表示
-2ファイル名のみを表示(「-h」「-t」「-z」オプションを併用可)
-m格納されているファイルごとの圧縮率を表示
-l格納されているファイルごとの圧縮後サイズを表示
-v格納されているファイルごとの詳細な情報を出力
-hヘッダを表示
-tトータル行を表示
-zZIPファイルのコメントを表示
-Tタイムスタンプを8桁.6桁(YYYYMMDD.hhmmss)形式で表示
-M1画面ごとに停止しながら表示
-x ファイル名出力から除外するファイル名を指定

zipinfoコマンドの使用例

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

たとえば、ZIPファイル「archive.zip」の内容を表示するには、次のように実行します。

# zipinfo archive.zip

Archive: archive.zip
Zip file size: 20698 bytes, number of entries: 2
-rw-r--r-- 3.0 unx 10485760 bx defN 18-Nov-10 16:22 file_1.dat
-rw-r--r-- 3.0 unx 10485760 bx defN 18-Nov-10 16:22 file_5.dat
2 files, 20971520 bytes uncompressed, 20380 bytes compressed: 99.9%

出力される内容は次のとおりです。

1~2行目はヘッダ行で、1行目にZIPファイルのファイル名、2行目にZIPファイルのファイルサイズと、格納されているファイル数が表示されます。この例の場合は、2つのファイルが格納されていることがわかります。

3行目以降では、格納されているファイルの情報が表示されます。この部分はコマンド「ls -l」の表示に似ており、左からパーミッション、ZIPコマンドのバージョン、圧縮時の環境、圧縮前のファイルサイズ、ファイル形式、圧縮方法、タイムスタンプ、ファイル名の順で表示されます。

最終行はトータル行で、格納されているファイル数、圧縮前の合計ファイルサイズ、圧縮後の合計ファイルサイズ、圧縮率が表示されています。

圧縮時の環境

格納されているファイル情報にある「圧縮時の環境」列は、そのZIPファイルが作成された環境を表しており、「unx」はLinuxを含むUNIX環境、「fat」はWindows環境、「mac」はMacintosh環境を表しているようです。

ファイル形式

格納されているファイル情報にある「ファイル形式」列は、2文字で構成されています。

1文字目は 「t」または「b」のいずれかで、tならテキストファイルとして、bならバイナリファイルとして扱われていることを表しています。また、暗号化されている場合は、それらの文字が大文字で表示されます。

2文字目は、拡張ローカルヘッダや追加のフィールドがあるかどうかによって、4つの値があります。どちらも存在しない場合は「-(ハイフン」、拡張ローカルヘッダのみが存在する場合は「l(小文字のエル」」、追加のフィールドのみが存在する場合は「x」、両方が存在する場合は「X」と表示されます。

上の例では「bx」と表示されているので、バイナリファイルで追加のフィールドのみが存在していることになります。

圧縮方法

格納されているファイル情報にある「圧縮方法」列では、使用されている圧縮方法などが表示されています。WindowsやLinuxで圧縮した場合、通常は「defN」と表示されます。

特定のファイルを指定して表示する

特定のファイルを指定して、情報を表示するには次のようにコマンドを実行します。

# zipinfo archive.zip file_5.dat

-rw-r--r-- 3.0 unx 10485760 bx defN 18-Nov-10 16:22 file_5.dat

特定のファイルを除外して表示する

特定のファイルを除外して、情報を表示するには次のようにコマンドを実行します。

# zipinfo archive.zip -x file_5.dat

-rw-r--r--  3.0 unx 10485760 bx defN 18-Nov-10 16:22 file_1.dat

なお、特定のファイルを指定した場合や除外した場合、ヘッダ行やトータル行が表示されませんので、ヘッダ行を表示したい場合は「-h」、トータル行を表示したい場合は「-t」オプションを指定します。

# zipinfo -ht archive.zip -x file_5.dat

Archive:  archive.zip
Zip file size: 20698 bytes, number of entries: 2
-rw-r--r--  3.0 unx 10485760 bx defN 18-Nov-10 16:22 file_1.dat
1 file, 10485760 bytes uncompressed, 10190 bytes compressed:  99.9%

ファイル名だけを表示する

ZIPファイルに収納されているファイル名だけを表示したい場合は「-1」オプションを使います。

# zipinfo -1 archive.zip 

file_1.dat
file_5.dat

ヘッダ行やトータル行を同時に表示したい場合は、「-2」オプションを使い、「-h」や「-t」オプションを併用します。

# zipinfo -2ht archive.zip

Archive:  archive.zip
Zip file size: 20698 bytes, number of entries: 2
file_1.dat
file_5.dat
2 files, 20971520 bytes uncompressed, 20380 bytes compressed:  99.9%

あとがき

解凍に時間がかかるようなZIP形式ファイルだと、解凍せずに中身を確認できるのはありがたいですね。