![Encontre todos os arquivos '.c' e '.h' no diretório, exceto nos diretórios 'test' no Linux](https://rvso.com/image/1457436/Encontre%20todos%20os%20arquivos%20'.c'%20e%20'.h'%20no%20diret%C3%B3rio%2C%20exceto%20nos%20diret%C3%B3rios%20'test'%20no%20Linux.png)
Quero encontrar todos os arquivos .c e .h em meu diretório, excluindo aqueles nas pastas 'teste' (existem vários).
O diretório que estou pesquisando possui diretórios de teste como:
myDirectory/abc/def/test
myDirectory/abc/def/ghi/test
etc.
Até agora, eu tentei:
find /myDirectory/* -type d -name test -prune -o -name '*.c' -print
e isso parece funcionar para os arquivos .c, mas quando executo:
find /myDirectory/* -type d -name test -prune -o -name '*.c' -o -name '*.h' -print
nada é retornado.
Como incluo vários tipos de arquivo?
Responder1
Você tem que agrupar os dois -name
predicados:
find /myDirectory/* -type d -name test -prune -o \( -name '*.c' -o -name '*.h' \) -print
A barra invertida é necessária para escapar dos parênteses.