Como nas respostas anteriores (+1 para ambos), o truque é usar o -type fpredicado.
Observe que em vez de -exec rm '{}'você também pode usar o -deletepredicado. 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 -deletefunciona 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 finde rmtrabalhar mais rápido para toneladas de arquivos, consulte o find ... | xargs ... rmidioma do UNIX.