/ / usando find mas apenas em subdiretórios que correspondem a um determinado padrão - linux, find

usando find mas apenas em subdiretórios que combinam com determinado padrão - linux, find

Eu estou tentando construir meu arquivo etags. Eu tenho uma estrutura de projeto de tal forma que, dado um diretório raiz, existem subdiretórios e dentro desses podem ser diretórios denominados "cpp". Por exemplo:

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

Então, para um projeto comum, geralmente algo como: encontrar . -tipo f (-inome ".cpp "-o -iname".hpp "-o -iname".c "-o -inome".h "-o -inome".cc "-o -iname".hh ") -print | xargs etags -a

Isso não funcionará mais, pois também irá coletar arquivos que podem ser csharp, object c etc ...

Então, o que eu estou tentando fazer é encontrar apenas os arquivos retornados nos subdiretórios chamados cpp. Então, como posso encontrar para fazer isso?

Obrigado ...

Respostas:

3 para resposta № 1

Aninhado find pode funcionar para você

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

2 para resposta № 2

Ou mais simplesmente (assumindo que não há subdiretórios adicionais nos diretórios cpp:

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

Isso retornaria o caminho relativo inteiro de. embora, o que pode exigir mais corte: /