
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?