Cygwin shell 'find' 'unzip' 似乎无法过滤掉无法传递给解压缩的行

Cygwin shell 'find' 'unzip' can't seem to get filtered off lines to not get passed to unzip

在 Cygwin 64 位中,我有这个命令可以执行我想要的操作:

$ find -name '*.zip' | wc -l
90

我尝试使用 Find all zips, and unzip in place - Unix:

中的方法将结果传递给解压
$ find -name '*.zip' -execdir unzip -t '{}' ';' | wc -l
...random paths with the error continuing from "central" filename version...
17605 #?!?, why not 90 like before?

感谢针对这个小问题的一些智慧。

您将得到不同的计数,因为使用 unzip -t 将测试存档提取并将列出 .zip 文件中的每个文件,因此您将获得更多的输出而不仅仅是名称.zip 个文件。

您可能是指这个 find 命令:

find -name '*.zip' -execdir unzip '{}' ';' -print | wc -l

在阅读了更多有关解压缩的文档后,我发现了以下 2 中的第二个命令可以解决我最初的问题:

find -name '*.zip' -execdir unzip -t '{}' ';'  #every file in every zip
find -name '*.zip' -execdir unzip -tq '{}' ';' #one consolidated answer per zip