关于使用带有修剪选项的查找

关于使用带有修剪选项的查找

我有一个源文件夹,您可以在其中找到扩展名为.c, .pc,的文件.pro.c

我想查找所有带有 和 的文件.c.pc因为是预处理后.pro.c生成的文件。.pc

这是我的查找表达式,但尚不正确:

find source \( \( -name '*.pro.c' \) -a -prune \) -o \( -name '*.c' -a -print \)

我的错误是什么?

有人可以帮助我并解释为什么我没有得到正确的结果吗?

谢谢。

答案1

-prune适用于目录,而不是文件,并指示find不要下降到它正在查看的目录。

您只需要否定名称测试:

find source -name '*.c' ! -name '*.pro.c' -o -name '*.pc'

相关内容