我有一个源代码树,其中有一些目录的名称以 结尾-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