很久以前有一个名为 CFAtest 的实用程序可以很好地完成这项工作,但它已经消失了。
基本上,我正在寻找一个类似的工具(最好是图形化的),它可以遍历给定的路径(最好包括子文件夹)并测试它找到的所有 zip 文件。
不错的日志记录选项将是一个优点。
答案1
查找每个子文件夹中的每个 zip 文件
这将在当前文件夹 ( ) 的所有子文件夹中找到扩展名为( 或或或等等,忽略大小写, ) 的.
文件 ( ) ,并测试它们的完整性 (选项) 保持安静 (选项,一起)。保持安静意味着:不列出 zip 文件的内容,而只报告测试结果。-type f
zip
ZIP
Zip
zIp
-iname
-t
-q
-tq
find . -type f -iname '*.zip' -exec unzip -tq {} \;
仅当前文件夹(无子文件夹)
如果你只想检查当前目录中的文件,而不检查任何子文件夹中的文件,请使用
unzip -tq '*.[Zz][Ii][Pp]'
在包含 zip 文件的目录中。这还会检查文件扩展名ZIP
或Zip
或zIp
等等,忽略大小写。
答案2
在 Windows 上我使用7zip:它提供了图形用户界面,免费,并支持包括 zip 在内的多种存档文件格式。
在 Windows 资源管理器中导航到要分析的指定文件夹。搜索*.zip
,选择所有文件,右键单击,选择“测试存档”
然后等待(请注意,在 7z 开始测试之前,explorer.exe 大约需要 10 分钟才能浏览 100,000 个 .zip):
答案3
erik 的答案在 Mac 上对我来说不起作用,但这适用于当前文件夹和所有子文件夹中的 zip 文件:
find . -name '*.zip' -exec unzip -tq {} \;
为每个文件输出:
No errors detected in compressed data of ./2013-10-16.zip.
答案4
它可能不完全符合您的要求,但有一个名为 Zip2Fix 的工具。
我还没有用过它,但你可以从这里下载它: