GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo quitar (eliminar) directorio en Linux

Hay varias formas diferentes de eliminar directorios en los sistemas Linux. Si usa un administrador de archivos de escritorio como Gnome's Files o KDE's Dolphin, entonces puede eliminar archivos y directorios usando la interfaz gráfica de usuario del administrador. Pero, si está trabajando en un servidor sin cabeza o desea eliminar varios directorios a la vez, su mejor opción es eliminar los directorios (carpetas) desde la línea de comandos.

En este artículo, explicaremos cómo eliminar directorios en Linux usando el rmdir , rm y find comandos.

Antes de comenzar #

Al eliminar un directorio con un administrador de archivos de escritorio, el directorio se mueve a la Papelera y se puede recuperar fácilmente.

Tenga mucho cuidado al eliminar archivos o directorios de la línea de comandos porque una vez que el directorio se elimina con los comandos explicados en este artículo, no se puede recuperar por completo.

En la mayoría de los sistemas de archivos de Linux, eliminar un directorio requiere permiso de escritura en el directorio y su contenido. De lo contrario, obtendrá el error "Operación no permitida".

Los nombres de directorio con un espacio en ellos se deben escapar con una barra invertida (/ ).

Eliminar directorios con rmdir #

rmdir es una utilidad de línea de comandos para eliminar directorios vacíos. Es útil cuando desea eliminar un directorio solo si está vacío, sin necesidad de verificar si el directorio está vacío o no.

Para eliminar un directorio con rmdir , escriba el comando seguido del nombre del directorio que desea eliminar. Por ejemplo, para eliminar un directorio llamado dir1 escribirías:

rmdir dir1

Si el directorio no está vacío, obtendrá el siguiente error:

rmdir: failed to remove 'dir1': No such file or directory

En este caso, deberá utilizar el rm o elimine manualmente el contenido del directorio antes de poder eliminarlo.

Eliminar directorios con rm #

rm es una utilidad de línea de comandos para eliminar archivos y directorios. A diferencia de rmdir el rm El comando puede eliminar directorios vacíos y no vacíos.

Por defecto, cuando se usa sin ninguna opción rm no elimina directorios. Para eliminar un directorio vacío, use -d (--dir ) y para eliminar un directorio que no esté vacío, y todo su contenido use la -r (--recursive o -R ) opción.

Por ejemplo, para eliminar un directorio llamado dir1 junto con todo su contenido, escribiría:

rm -r dir1

Si un directorio o un archivo dentro del directorio está protegido contra escritura, se le pedirá que confirme la eliminación. Para eliminar un directorio sin que se le solicite, use -f opción:

rm -rf dir1

Para eliminar varios directorios a la vez, invoque el rm comando, seguido de los nombres de los directorios separados por espacios. El siguiente comando eliminará cada directorio enumerado y su contenido:

rm -r dir1 dir2 dir3

El -i opción le dice a rm para pedirle que confirme la eliminación de cada subdirectorio y archivo. Si el directorio contiene muchos archivos, esto puede ser un poco molesto, por lo que puede considerar usar -I opción que le preguntará solo una vez antes de proceder con la eliminación.

rm -rI dir1

Para eliminar el tipo de directorio y y pulsa Enter .

rm: remove 1 argument recursively? y

También puede usar expansiones regulares para hacer coincidir y eliminar varios directorios. Por ejemplo, para eliminar todos los directorios de primer nivel en el directorio actual que termina con _bak , usaría el siguiente comando:

rm -r *_bak

Usar expansiones regulares al eliminar directorios puede ser riesgoso. Se recomienda primero listar los directorios con el ls comando para que pueda ver qué directorios se eliminarán antes de ejecutar rm comando.

Eliminar directorios con find #

find es una utilidad de línea de comandos que le permite buscar archivos y directorios en función de una expresión determinada y realizar una acción en cada archivo o directorio coincidente.

El escenario más común es usar el find Comando para eliminar directorios según un patrón. Por ejemplo, para eliminar todos los directorios que terminan en _cache en el directorio de trabajo actual, ejecutaría:

find . -type d -name '*_cache' -exec rm -r {} +

Analicemos el comando anterior:

  • /dir - búsqueda recursiva en el directorio de trabajo actual (. ).
  • -type d - restringe la búsqueda a directorios.
  • -name '*_cache' - buscar solo directorios que terminen con _cache
  • -exec - ejecuta un comando externo con argumentos opcionales, en este caso, que es rm -r .
  • {} + - agrega los archivos encontrados al final del rm comando.

Eliminando todos los directorios vacíos #

Para eliminar todos los directorios vacíos en un árbol de directorios, debe ejecutar:

find /dir -type d -empty -delete

Aquí hay una explicación de las opciones utilizadas:

  • /dir - búsqueda recursiva en el /dir directorio.
  • -type d - restringe la búsqueda a directorios.
  • -empty - restringe la búsqueda solo a directorios vacíos.
  • -delete - elimina todos los directorios vacíos encontrados en el subárbol. -delete solo puede eliminar directorios vacíos.

Usa el -delete opción con extrema precaución. La línea de comando de búsqueda se evalúa como una expresión, y si agrega -delete primero, el comando eliminará todo lo que esté debajo de los puntos de inicio que especificó.

Siempre pruebe el comando primero sin -delete y use -delete como última opción.

/bin/rm:Lista de argumentos demasiado larga #

Este mensaje de error aparece cuando usa el rm comando para eliminar un directorio que contiene una gran cantidad de archivos. Esto sucede porque la cantidad de archivos es mayor que el límite del sistema en el tamaño del argumento de la línea de comandos.

Hay varias soluciones diferentes a este problema. Por ejemplo, puede cd al directorio y manualmente o usando un bucle para eliminar los subdirectorios uno por uno.

La solución más fácil es primero eliminar todos los archivos dentro del directorio con find comando y luego elimine el directorio:

find /dir -type f -delete && rm -r /dir

Conclusión #

Con rm y find puede eliminar directorios en función de diferentes criterios de forma rápida y eficiente.

Eliminar directorios es un proceso simple y fácil, pero debe tener cuidado de no eliminar datos importantes.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Cómo eliminar cuentas de usuario con el directorio de inicio en Linux

  2. Cómo buscar y eliminar directorios recursivamente en Linux

  3. ¿Cómo eliminar un directorio y una carpeta en Linux?

  4. Cómo cambiar el nombre de un directorio en Linux

  5. 5 ejemplos prácticos para eliminar / eliminar directorios en Linux

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

Cómo encontrar y eliminar directorios vacíos en Linux

Cómo eliminar archivos y directorios en Linux

Cómo eliminar archivos y directorios en la terminal de Linux

Cómo quitar/eliminar archivos en Linux usando el comando rm

Cómo copiar un directorio en Linux