查找与某个模式匹配的文件,但不在与另一个模式匹配的目录中

查找与某个模式匹配的文件,但不在与另一个模式匹配的目录中

我有一个源代码树,其中有一些目录的名称以 结尾-old,在重写其中的组件时会将其保留为参考。还有一个,Makefile它只find会将当前目录子文件夹中的所有*.cpp文件编译为单个可执行文件(是的,我知道,这不是一个很棒的构建系统,但它工作得很好……除了 s -old)。

因此,我使用它来获取所有*.cpp文件的列表:

SOURCES=$(shell find . -name "*.cpp" -print)

我怎样才能知道find查找所有路径中*.cpp没有的文件?*-old*

答案1

$ find . -type f -name '*.cpp' ! -path '*-old*'

答案2

find . -type d -name "*-old" -prune -o -name "*.cpp" -print

相关内容