Encontre um arquivo que corresponda a um padrão, mas não no diretório que corresponda a outro padrão

0

Eu tenho uma árvore de origem com alguns diretórios com nomes que terminam com -old , que são mantidos como uma referência ao reescrever os componentes que estão neles. Há também um Makefile que apenas find s todos *.cpp arquivos em subpastas do diretório atual e compila-os em um único executável (sim, eu sei, não é um ótimo sistema de compilação, mas funciona muito bem .. exceto o -old s).

Então, estou usando isso para obter uma lista de todos os arquivos *.cpp :

SOURCES=$(shell find . -name "*.cpp" -print)

Como posso dizer a find para procurar todos os arquivos *.cpp , que não têm *-old* em seu caminho?

    
por Griwes 20.04.2013 / 18:40

2 respostas

1

$ find . -type f -name '*.cpp' ! -path '*-old*'
    
por 20.04.2013 / 18:45
1
find . -type d -name "*-old" -prune -o -name "*.cpp" -print
    
por 20.04.2013 / 18:58

Tags