Como nas respostas anteriores (+1 para ambos), o truque é usar o -type f
predicado.
Observe que em vez de -exec rm '{}'
você também pode usar o -delete
predicado. Mas não faça isso. Com -exec rm '{}'
você, você pode (e deve) fazer primeiro -exec echo rm '{}'
para verificar se é isso que realmente deseja. Depois disso, execute novamente o comando sem o echo
.
O uso -delete
é mais rápido (sem acréscimo fork()
e execve()
para cada arquivo), mas isso é arriscado porque -delete
funciona também como uma condição, portanto:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
mas se você apenas trocar argumentos:
# delete ALL files
find . -type f -name '*.tmp' -delete
Se você precisar find
e rm
trabalhar mais rápido para toneladas de arquivos, consulte o find ... | xargs ... rm
idioma do UNIX.