file - una - Cómo eliminar archivos y directorios rápidamente a través de terminal(bash shell)
mover todos los archivos de un directorio a otro en linux (4)
Desde la ventana de la terminal:
Cuando uso el comando rm solo puedo eliminar archivos.
Cuando uso el comando rmdir , solo se eliminan 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 tener que escribir todo el comando?
Si hace una diferencia, estoy usando el shell bash de mac de la terminal, no Microsoft DOS o linux.
Así que estaba buscando por todas partes una forma de eliminar todos los archivos de un directorio, excepto algunos directorios y archivos que quería conservar. Después de mucho buscar, ideé una forma de hacerlo usando find.
find -E . -regex ''./(dir1|dir2|dir3)'' -and -type d -prune -o -print -exec rm -rf {} /;
Esencialmente, utiliza expresiones regulares para seleccionar los directorios para excluir de los resultados y luego elimina los archivos restantes. Solo quería ponerlo aquí en caso de que alguien más lo necesitara.
Sí hay. La opción -r le dice a rm que sea r ursiva y elimine toda la jerarquía de archivos enraizada en sus argumentos; en otras palabras, si se le da un directorio, eliminará todo su contenido y luego ejecutará lo que efectivamente es un rmdir .
Las otras dos opciones que debes saber son -i y -f . -i significa inactivo; hace que rm te pregunte antes de eliminar todos y cada uno de los archivos. -f representa la fuente; Sigue adelante y borra todo sin preguntar. -i es más seguro, pero -f es más rápido; Úsalo solo si estás absolutamente seguro de que estás eliminando lo correcto. Puede especificar estos con -r o no; Es un escenario independiente.
Y como de costumbre, puede combinar los interruptores: rm -r -i es simplemente rm -ri , y rm -r -f es rm -rf .
También tenga en cuenta que lo que está aprendiendo se aplica a bash en todos los sistemas operativos Unix: OS X, Linux, FreeBSD, etc. De hecho, la sintaxis de rm es la misma en casi todos los shell de cada sistema operativo Unix. OS X, bajo el capó, es realmente un sistema BSD Unix.
rm -rf *
Quitaría todo (carpetas y archivos) en el directorio actual.
¡Pero ten cuidado! Ejecute este comando solo si está absolutamente seguro de que está en el directorio correcto.
rm -rf some_dir
-r "recursivo" -f "fuerza" (suprimir mensajes de confirmación)
¡Ten cuidado!