¿Comando para eliminar todos los archivos y carpetas de forma recursiva, incluidos los ocultos, en el terminal MAC OS?

11

rm -rf * eliminará todos los archivos y carpetas pero no los ocultos.

rm -rf .* eliminará todos los archivos y carpetas ocultos, pero no los que no están ocultos, ¿correcto?

¿Qué comando debe escribir uno para eliminar todos los archivos y carpetas, incluidos los ocultos? (excepto. y ..); ?

MEM
fuente

Respuestas:

13
rm -rf * .*

Hará el truco.

usuario1055604
fuente
1
¡NO! .*se ampliará a todas las entradas invisibles en el directorio actual incluyendo .. - lo que significa que utilizando .*como argumento para rm -rfintentará eliminar el directorio superior al que está actualmente en, y todo su contenido . rm se negará a hacerlo, pero no considero confiar en esta caja fuerte ...
Gordon Davisson
@ Gordon Davisson: he creado un directorio. Le he agregado archivos, incluidos los archivos ocultos. He hecho ese comando. Ha eliminado todos los contenidos dentro de ese directorio de forma recursiva, y no ha eliminado ningún contenido ARRIBA de ese directorio. ¿Puedes por favor aclarar tu comentario?
MEM
Gracias por la aclaración sobre su comentario anterior. Ahora entiendo tu punto. ¿Alguna sugerencia alternativa entonces?
MEM
¿qué tal usar findcon la -deletebandera ...
user1055604
1
@GordonDavisson rmdebería imprimir un rm: "." and ".." may not be removedmensaje en ese caso, no eliminará automáticamente el directorio principal.
slhck
1

Prueba esto:

find . -mindepth 1 -delete

No estoy seguro de que -mindepthsea ​​compatible con todas las implementaciones de find; si el tuyo no lo tiene, -pathdebería darte otra forma de evitar que intente eliminarlo .:

find . -path "*/*" -delete
Gordon Davisson
fuente
BSD también findtiene esa opción, sí.
slhck
1

Simplemente use este comando para purgar archivos / directorios de acuerdo con criterios específicos:

# tmpwatch -fauv 0 .
Antoine Nguyen
fuente
0

shopt -s dotglobtambién hace *incluir archivos que comienzan con un punto.

Lri
fuente