Quando você usa várias operações lógicas, é necessário agrupá-las entre parênteses, conforme abaixo:
find . \( -name "*.un~" -o -name "*.swo" -o -name "*.swp" \) -delete
onde você tem que barra invertida ou citar os colchetes ( '(' ... ')'
) para evitar a análise desses caracteres especiais pelo shell.
No exemplo acima, estou usando -delete
em vez de -exec rm -f {}
, que remove automaticamente o arquivo, para que você não precise se preocupar com arquivos com espaços, caso contrário, ele pode acabar bad para você.
Para mais exemplos de sintaxe, verifique man find
.
Veja também:
- Comportamento estranho de “localizar” no Linux
- find (1) - Página man do Linux (seção OPERADORES )