Digamos que tengo un árbol de directorios como este:
FOLDER:
file1
file2
file3
Subfolder1:
file1
file2
Subfolder2:
file1
file2
Si lo usara rm -r FOLDER/*, todo en FOLDER se eliminaría, incluidos los subdirectorios. ¿Cómo puedo eliminar todos los archivos en FOLDER y en sus subdirectorios sin eliminar directorios reales?
fuente

Si su versión de
findno es compatible-delete, puede usar lo siguiente para eliminar cada archivo en el directorio actual y debajo.fuente
-exec rm {} +sería más rápido, especialmente si hay muchos archivos.find . ! -type d -exec rm {} +elimina enlaces sym.findno es compatible-delete, probablemente tampoco-exec ... {} +sea compatible . La forma recomendada de lidiar con eso esfind ... -print0 | xargs -r0 rm(si se esperan muchas coincidencias potenciales).-exec ... {} +es POSIX, pero-deleteno lo es. (Tampoco lo es-print0, por cierto.)findimplementaciones que no son POSIX que son compatibles-print0pero no-exec ... {} +(aunque no recuerdo-delete). Uno estaba en OS X, el otro en Solaris (hace unos años en un sistema actualizado muy conservador). También puedes sustituir-print0con-printf '%p\0'. De todos modos, esto es Ask Ubuntu y no Unix & Linux y Ubuntu usa GNU find desde siempre.