フォルダー内のすべての zip ファイルをテストして、破損していないかどうかを確認するにはどうすればよいでしょうか?

フォルダー内のすべての zip ファイルをテストして、破損していないかどうかを確認するにはどうすればよいでしょうか?

昔、これを非常にうまく実行していた CFAtest というユーティリティがありましたが、消えてしまいました。

基本的に、私は、指定されたパス(できればサブフォルダーを含む)をトラバースし、見つかったすべての zip ファイルをテストする同様のツール(できればグラフィカル)を探しています。

適切なログ記録オプションがあればさらに良いでしょう。

答え1

すべてのサブフォルダ内のすべてのzipファイルを検索

これは、現在のフォルダ ( .)のすべてのサブフォルダで-type f、拡張子zip(またはZIPまたはZipなどzIp、大文字と小文字は区別されません) を持つファイル ( ) を検索し、それらの整合性 (オプション) が静かであること (オプション、一緒に)-inameをテストします。静かであることは、zip ファイルの内容を一覧表示せず、テスト結果のみを報告することを意味します。-t-q-tq

find . -type f -iname '*.zip' -exec unzip -tq {} \;

現在のフォルダのみ(サブフォルダなし)

現在のディレクトリ内のファイルのみをチェックし、サブフォルダ内のファイルをチェックしない場合は、

unzip -tq '*.[Zz][Ii][Pp]'

zip ファイルのあるディレクトリ内。ファイル拡張子もチェックされ、大文字ZIPと小文字は区別されません。ZipzIp

答え2

Windowsでは7zip: グラフィカル ユーザー インターフェイスを提供し、無料で、zip を含む幅広いアーカイブ ファイル形式をサポートします。

Windowsエクスプローラーで分析したいフォルダに移動します。を検索し*.zip、すべてのファイルを選択して右クリックし、「アーカイブのテスト」を選択します。

ここに画像の説明を入力してください

その後、待機します (7z のテストを開始する前に、explorer.exe が 100,000 個の .zip を処理するのに約 10 分かかることに注意してください)。

ここに画像の説明を入力してください

答え3

erik の回答は Mac では機能しませんでしたが、これは現在のフォルダーとすべてのサブフォルダー内の zip には機能します。

find . -name '*.zip' -exec unzip -tq {} \;

各ファイルに対してこれを出力します:

No errors detected in compressed data of ./2013-10-16.zip.

答え4

あなたが求めているものとは少し違うかもしれませんが、Zip2Fix というツールがあります。

まだ使用していませんが、ここからダウンロードできます:

http://leelusoft.blogspot.com/2011/06/zip2fix-10.html

関連情報