使用 find 只计算包含特定 3 个文件的目录?

使用 find 只计算包含特定 3 个文件的目录?

是否可以find仅返回该目录中存在 3 个文件名的结果?

当然最后我们可以用来wc -l统计它们......

但从某种项目根目录开始,然后在那些与名称/正则表达式模式匹配的子文件夹中尝试列出其中包含的子文件夹:

file1.ext1file2.ext2*.ext3

然后仅直接计算wc -l所有这些文件是否存在于其中?

答案1

find您可以使用-exec或运行未内置的测试-execdir,并将其结果用作find测试。在这种情况下:

find . -name \*.ext3 -execdir /usr/bin/test -e file1.ext1 -a -e file2.ext2 \; -printf "%p\n" | sort -u | wc -l

这将查找匹配的文件*.ext3,并且对于它找到的每个文件,/usr/bin/test在包含的目录中运行以检查是否file1.ext1file2.ext2存在于该目录中。如果这样做,它会输出包含目录的路径。然后对输出进行过滤以删除重复项,最后进行计数。

相关内容