Como en respuestas anteriores (+1 para ambos), el truco es usar -type f
predicado.
Tenga en cuenta que en lugar de -exec rm '{}'
usted también puede usar -delete
predicado. Pero no hagas eso. Con -exec rm '{}'
usted puede (y debe) primero hacer -exec echo rm '{}'
para verificar que esto es realmente lo que quiere. Después de eso, vuelva a ejecutar el comando sin el echo
.
El uso -delete
es más rápido (no adicional fork()
y execve()
para cada archivo), pero esto es arriesgado porque -delete
también funciona como una condición, por lo tanto:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
pero si SOLO intercambias argumentos:
# delete ALL files
find . -type f -name '*.tmp' -delete
Si alguna vez necesita find
y rm
trabaja más rápido para toneladas de archivos, consulte el find ... | xargs ... rm
idioma UNIX.