Encontre todos os arquivos '.c' e '.h' no diretório, exceto nos diretórios 'test' no Linux

1

Eu quero encontrar todos os arquivos .c e .h no meu diretório, excluindo os que estão nas pastas 'teste' (existem vários).

O diretório que estou procurando tem 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 eu corro:

find /myDirectory/* -type d -name test -prune -o -name '*.c' -o -name '*.h' -print

nada é retornado.

Como incluo vários tipos de arquivo?

    
por ZebraSocks 14.07.2015 / 20:46

1 resposta

1

Você precisa agrupar os dois predicados -name :

find /myDirectory/* -type d -name test -prune -o \( -name '*.c' -o -name '*.h' \) -print

A barra invertida é necessária para escapar dos parênteses.

    
por 14.07.2015 / 20:50

Tags