关于linux:使用find但仅限于匹配特定模式的子目录

using find but only in subdirectories matching certain pattern

我正在尝试构造我的etags文件。我有一个项目结构,这样给定一个根目录,就有子目录,并且在这些子目录中可以是名为"cpp"的目录。例如:

1
2
3
4
5
6
7
root
 - sub1
  - cpp
 - sub2
  - sub21
   - cpp
   - csharp

所以对于常规项目,我通常是这样的:找到。-类型F(-iname'.cpp'-o-iname'.hpp'-o-iname'.c'-o-iname'.h'-o-iname'.c c'-o-iname'.h h')-打印xargs etags-A

这将不再有效,因为它还将收集可能是CSharp、Objective C等的文件。

所以我要做的是只让find返回名为cpp的子目录中的文件。我怎么能找到这样做的?

谢谢。。。


或者更简单(假设cpp目录中没有其他子目录:

1
find . -type f -path"*/cpp/*"

这将从返回整个相对路径。但可能需要进一步修整:/


嵌套的find可能对您有用

1
find . -type d -name"cpp" -exec find {} -type f \;