Desde la ventana de terminal:
Cuando uso el rm
comando solo puede eliminar archivos.
Cuando uso el rmdir
comando, solo elimina las carpetas vacías.
Si tengo un directorio anidado con archivos y carpetas dentro de carpetas con archivos, etc., ¿hay alguna forma de eliminar todos los archivos y carpetas sin todos los tipos de comandos extenuantes?
Si hace la diferencia, estoy usando el shell mac bash de la terminal, no Microsoft DOS o Linux.
Respuestas:
-r "recursivo" -f "fuerza" (suprimir mensajes de confirmación)
¡Ten cuidado!
fuente
brew install trash
luegotrash -rf some_dir
Esto moverá el directorio no deseado a su cubo de basura en lugar de simplemente desvanecer el estilo Prestige en el éter. ( fuente )Eliminaría todo (carpetas y archivos) en el directorio actual.
¡Pero ten cuidado! Solo ejecute este comando si está absolutamente seguro de que está en el directorio correcto.
fuente
ls -R *
primero para ver qué eliminará?rm -rf *
Sí hay. La
-r
opción le dicerm
a ser r ecursive, y quitar toda la jerarquía de ficheros raíz en sus argumentos; en otras palabras, si se le da un directorio, eliminará todo su contenido y luego realizará lo que efectivamente es unrmdir
.Las otras dos opciones que debe saber son
-i
y-f
.-i
representa i nteractive; hace querm
le avise antes de borrar cada archivo.-f
significa f orce; continúa y elimina todo sin preguntar.-i
es más seguro, pero-f
es más rápido; solo úselo si está absolutamente seguro de que está eliminando lo correcto. Puede especificar esto con-r
o no; Es un entorno independiente.Y, como de costumbre, puede combinar interruptores:
rm -r -i
es justorm -ri
yrm -r -f
esrm -rf
.También tenga en cuenta que lo que está aprendiendo se aplica a
bash
en cada sistema operativo Unix: OS X, Linux, FreeBSD, etc. De hecho,rm
la sintaxis 's es la misma en casi todos los depósitos en cada sistema operativo Unix. OS X, bajo el capó, es realmente un sistema BSD Unix.fuente
"rm -d"
, lo que elimina archivos o directorios vacíos. Aún así, +1 para el punto de que OS X es BSD internamente.Así que estaba buscando una forma de eliminar todos los archivos en un directorio, excepto algunos directorios y archivos, que quería mantener. Después de mucho buscar, ideé una forma de hacerlo usando find.
Básicamente, utiliza expresiones regulares para seleccionar los directorios que se excluirán de los resultados y luego elimina los archivos restantes. Solo quería publicarlo aquí en caso de que alguien más lo necesitara.
fuente