Remover certos tipos de arquivos, exceto em uma pasta

2

Eu tenho um comando no meu makefile para clean :

rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.annot

Agora, gostaria de escrever um cleanpartial que remova esses arquivos, exceto os que estão na pasta frontend/ e na pasta frontend/gen/ .

Alguém sabe como escrever este comando corretamente?

    
por SoftTimur 08.04.2016 / 02:00

1 resposta

3

Você deve usar find para isso.

Você pode testar com segurança com o seguinte comando:

find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -print

Quando estiver satisfeito com a lista de arquivos impressos, execute o comando real para excluir o lote deles:

find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -exec rm -f {} +
    
por 08.04.2016 / 02:27

Tags