-delete
terá um desempenho melhor porque não precisa gerar um processo externo para cada arquivo correspondente.
É possível que você veja -exec rm {} \;
frequentemente recomendado porque -delete
não existe em todas as versões de find
. Não posso verificar agora, mas tenho certeza que usei um find
sem ele.
Ambos os métodos devem ser "seguros".
EDITAR por comentário de @doitmyway: certifique-se de combinar no nome e então excluir, e não o contrário (excluir, depois combinar). Caso contrário, todos os arquivos serão excluídos, se corresponderem ou não . Ou seja, NÃO faça isso: find / -delete -name .DS_Store
.
Um método comum para evitar a sobrecarga de gerar um processo externo para cada arquivo correspondente é:
find / -name .DS_Store -print0 | xargs -0 rm
(mas note que também há um problema de portabilidade: nem todas as versões do find têm -print0
!)