encontrar arquivos com dois tipos de extensões modificadas pela última vez há mais de 30 dias

0

Eu quero encontrar todos os arquivos em um diretório que não tenha sido modificado por pelo menos 30 dias e terminar em .xml ou .out . Esta é minha tentativa de reunir algumas referências para criar a sintaxe find correta:

find . -mtime +30 -type f / (-name "*.xml -o -name "*.out" ) / -print

Estou recebendo

-bash: syntax error near unexpected token '('

O que estou perdendo na minha sintaxe?

    
por user2299797 05.03.2015 / 00:17

1 resposta

2

Você está quase lá! Isso funciona:

find . -mtime +30 -type f \( -name \*.xml -o -name \*.out \)

Seu / ( se torna \( (um parêntese de escape aberto; como você descobriu, o shell trata ( especialmente, por isso ele precisa ser escapado com \ ); da mesma forma, ) / deve, na verdade, ser \) . Os nomes precisam de * para corresponder a qualquer coisa que termine com a extensão fornecida, e isso também precisa ser escapado, portanto ".xml" (adicionei a cotação de fechamento ausente) se torna \*.xml ou "*.xml" .

Finalmente -print pode ser descartado, já que é a ação padrão de find .

    
por 05.03.2015 / 00:35

Tags