3

我正在尝试构建我的 etags 文件。我有一个项目结构,给定一个根目录,有子目录,其中可以是名为“cpp”的目录。例如:

root
 - sub1
  - cpp
 - sub2
  - sub21
   - cpp
   - csharp

所以对于常规项目,我通常是这样的:find . -type f ( -iname ' .cpp' -o -iname ' .hpp' -o -iname ' .c' -o -iname ' .h' -o -iname ' .cc' -o -iname ' .hh' ) -打印 | xargs etags -a

这将不再起作用,因为它还会拾取可能是 csharp、objective c 等的文件......

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

谢谢 ...

4

2 回答 2

4

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

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

这将返回整个相对路径。不过,这可能需要进一步修剪:/

于 2014-01-21T08:44:56.863 回答
4

嵌套find可能对您有用

find . -type d -name "cpp" -exec find {} -type f \;
于 2013-06-14T09:33:04.553 回答