如何测试文件夹中的所有 zip 文件以验证它们是否已损坏?

isa*_*ris 26 zip

很久以前有一个名为 CFAtest 的实用程序,它做得很好,但它已经消失了。

基本上,我正在寻找一个类似的工具(最好是图形工具),它将遍历给定的路径(最好包括子文件夹)并测试它找到的所有 zip 文件。

体面的日志记录选项将是一个加分项。

eri*_*rik 20

查找每个子文件夹中的每个 zip 文件

这将在当前文件夹 ( .) 的所有子文件夹中找到-type f具有扩展名zip(或ZIPorZipzIp等等,忽略大小写,) 的文件 ( -iname) 并测试它们的完整性 (选项-t) 是否安静 (选项-q,一起-tq)。完全是指:不列出压缩文件的内容,只报告测试结果。

find . -type f -iname '*.zip' -exec unzip -tq {} \;
Run Code Online (Sandbox Code Playgroud)

仅当前文件夹(无子文件夹)

如果您只想检查当前目录中的文件,而不是任何子文件夹中的文件,请使用

unzip -tq '*.[Zz][Ii][Pp]'
Run Code Online (Sandbox Code Playgroud)

在包含 zip 文件的目录中。这还会检查文件扩展名ZIPZipzIp等等,忽略大小写。

  • ... 或使用 `for` 命令。 (2认同)
  • 如果有很多 ZIP 文件,或者它们包含很多文件,则可能需要较少详细的输出。为此使用解压缩的 -q 选项: unzip -tq (2认同)

Fra*_*urt 18

在 Windows 上,我使用7zip:它提供了一个图形用户界面,是免费的,并且支持包括 zip 在内的多种存档文件格式。

导航到要在 Windows 资源管理器上分析的给定文件夹。搜索*.zip,选择所有文件,右键单击,选择“测试存档”

在此处输入图片说明

然后等待(注意,explorer.exe 在 7z 开始测试之前,需要大约 10 分钟通过 100,000 .zip):

在此处输入图片说明


mal*_*hal 8

erik 的回答在 Mac 上对我不起作用,但这适用于当前文件夹和所有子文件夹中的 zip:

find . -name '*.zip' -exec unzip -tq {} \;
Run Code Online (Sandbox Code Playgroud)

为每个文件输出这个:

No errors detected in compressed data of ./2013-10-16.zip.
Run Code Online (Sandbox Code Playgroud)


t1w*_*t1w 1

它可能不完全符合您的要求,但有一个名为 Zip2Fix 的工具。

我没用过,但你可以从这里下载:

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