是否可以find
仅返回该目录中存在 3 个文件名的结果?
当然最后我们可以用来wc -l
统计它们......
但从某种项目根目录开始,然后在那些与名称/正则表达式模式匹配的子文件夹中尝试列出其中包含的子文件夹:
file1.ext1
和file2.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.ext1
也file2.ext2
存在于该目录中。如果这样做,它会输出包含目录的路径。然后对输出进行过滤以删除重复项,最后进行计数。