eliminar el contenido del directorio de manera elegante

eliminar el contenido del directorio de manera elegante

Me gustaría eliminar todo el contenido del directorio de trabajo actual. ¿Cómo hacerlo de forma eficiente y elegante?

Tengo varios archivos, directorios y algunos de ellos comienzan con punto, como:

touch .abc; touch abcd ; mkdir foobar; touch "file name" "#"

Estoy buscando una solución elegante y compatible con Posix para dejar este directorio vacío. Publicaré algunas de mis ideas, pero ninguna es perfecta.

Respuesta1

rm -rf -- * .*

Esto es portátil y funciona, pero es feo, porque excepto con zsh, emite advertencias:

rm: cannot remove directory: `.'
rm: cannot remove directory: `..'

Respuesta2

Prueba esto:

find . -maxdepth 1 -not -name \. -exec rm -rf \{\} ;

Respuesta3

POSIXly:

rm -rf -- * .[!.]* ..?*

Ese podría fallar si la lista de archivos es demasiado grande, este no lo haría:

find . ! -name . -prune -exec rm -rf {} +

Con zsh:

rm -rf -- *(D)

Respuesta4

qué tal si

 rm -rf * .[a-z]* .[A-Z]* .[0-9]*

Eso funcionará ? ¿O también tienes otros patrones de nombres de archivos que coincidan?

información relacionada