Logo de TuX - Linux Kernel

Eliminar directorios en Linux con rmdir y rm

 
 
  1. Introducción (Volver al índice General)
    En este artículo veremos como eliminar directorios en Linux. Utilizaremos dos comandos para eliminar directorios o carpetas en Linux.

    • El comando rmdir
      Elimina los directorios sólo si están vacíos. Su sintaxis es la siguiente:

      rmdir [-p][-v][--ignore-fail-on-non-empty][--help][--version] directorio [directorio ...]

      Expliquemos un poco las opciones:

      • -p: Si el directorio a borrar incluye más de un directorio en el camino, lo borra, luego quita el último componente y borra el directorio resultante, así hasta que todos los componentes hayan sido eliminados. Así, rmdir -p a/b/c es equivalente a rmdir a/b/c; rmdir a/b; rmdir a.
      • -v, – -verbose: Muestra un mensaje por cada directorio procesado.
      • – -ignore-fail-on-non-empty: rmdir no borrará un directorio que no está vacío. Esta opción hace que rmdir ignore el fallo para eliminar el directorio, si ese fallo se debe a que el directorio no está vacío.
      • – -help: Muestra la ayuda y finaliza.
      • – -version: Informa de la versión y finaliza.
    • El comando rm: Se utiliza para borrar ficheros y directorios. A diferencia de rmdir, rm permite borrar directorios no vacíos. La sintaxis de rm, que nos interesa para este artículo, es la siguiente:
      rm [-r][-f][-d][-v][--help][--version] directorio [directorio ...]

      Expliquemos un poco las opciones:

      • -r, -R, – -recursive: Elimina directorios y su contenido recursivamente.
      • -f, – -force: No pide confirmación e ignora los archivos o argumentos inexistentes.
      • -d, – -dir: Elimina directorios vacíos.
      • -v, – -verbose: Explica lo que se está haciendo.
      • – -help: Muestra la ayuda y finaliza.
      • – -version: Informa de la versión y finaliza.
  2.  

  3. Ejemplos (Volver al índice General)
    Supongamos que nuestro directorio de trabajo es el home del usuario (~) activo y tenemos la siguiente estructura dentro del home del usuario (~):

    usuario@mypc:~$ tree -a temp*
    temporal
    ├── dir1
    │   ├── dirA
    │   └── dirB
    ├── dir2
    │   ├── dira
    │   └── dirb
    └── dir3
        ├── archivo1
        ├── archivo2
        ├── archivo3
        └── archivo4

    Teniendo en cuenta esta estructura, veamos algunos ejemplos prácticos para eliminar directorios.

    • Borrar directorio vacío con rmdir
      Borraremos el directorio vacío dirB:

      usuario@mypc:~$ rmdir temporal/dir1/dirB

      Veamos el resultado con tree:

      usuario@mypc:~$ tree -a temp*           
      temporal
      ├── dir1
      │   └── dirA
      ├── dir2
      │   ├── dira
      │   └── dirb
      └── dir3
          ├── archivo1
          ├── archivo2
          ├── archivo3
          └── archivo4
    • Borrar directorio con subdirectorio vacíos con rmdir
      En este ejemplo borraremos con una sola orden los directorios /dir1/dirA de la estructura anterior:

      usuario@mypc:~$ rmdir -p temporal/dir1/dirA
      rmdir: fallo al borrar el directorio 'temporal': El directorio no está vacío

      Observese que hemos tenido que usar la opción -p para que borre recursivamente directorios vacíos. Al llegar al directorio temporal, al no estar vacío presenta un mensaje de fallo.

      Si queremos que no muestre el mensaje de fallo, lo ejecutaremos de la siguiente forma:

      usuario@mypc:~$ rmdir -p --ignore-fail-on-non-empty temporal/dir1/dirA

      Veamos el resultado con tree:

      usuario@mypc:~$ tree -a temp*
      temporal
      ├── dir2
      │   ├── dira
      │   └── dirb
      └── dir3
          ├── archivo1
          ├── archivo2
          ├── archivo3
          └── archivo4
    • Borrar directorio con subdirectorios vacíos con rm
      Con el siguiente comando, borraremos con una sola orden el directorio dir2 y todo su contenido (dira y dirb):

      usuario@mypc:~$ rm -r temporal/dir2

      Si nuestro sistema muestra mensajes de confirmación para eliminar el directorio, y queremos formzar el borrado sin que nos pida confirmación, ejecutaremos el comando de la siguiente forma:

      usuario@mypc:~$ rm -rf temporal/dir2

      Veamos el resultado con tree:

      usuario@mypc:~$ tree -a temp*
      temporal
      └── dir3
          ├── archivo1
          ├── archivo2
          ├── archivo3
          └── archivo4
    • Borrar directorio con archivos con rm
      En este ejmplo, borraremos el directorio dir3 y todos sus archivos:

      usuario@mypc:~$ rm -r temporal/dir3

      Si nuestro sistema muestra mensajes de confirmación para eliminar el directorio y sus archivos, y queremos formzar el borrado sin que nos pida confirmación, ejecutaremos el comando de la siguiente forma:

      usuario@mypc:~$ rm -rf temporal/dir3

      Veamos el resultado con tree:

      usuario@mypc:~$ tree -a temp*
      temporal
    • Utilizando {}
      Volvamos a la estructura inicial de directorios. Utilizando las llaves {} podemos borrar de una sola orden toda la estructura de directorios. En el ejemplo siguiente borraremos los directorios dir1 y dir2, y sus subdirectorios vacíos con el comando rmdir:

      usuario@mypc:~$ rmdir -p --ignore-fail-on-non-empty temporal/dir{1/dir{A,B},2/dir{a..b}}

      Observese que hemos utilizado las llaves {} de dos formas distintas:

      • {A,B}: que significa A y B.
      • {a..b}: que significa de a hasta b.

      Veamos el resultado con tree:

      usuario@mypc:~$ tree -a temp*
      temporal
      └── dir3
          ├── archivo1
          ├── archivo2
          ├── archivo3
          └── archivo4

      Volvamos a la estructura inicial de directorios. Ahora veremos otro ejemplo pero con rm. Borraremos con una sola orden los directorios dir1, dir2 y dir3 y todo su contenido:

      usuario@mypc:~$ rm -r temporal/dir{1..3}

      En este caso {1..3} significa de 1 hasta 3.

      Veamos el resultado con tree:

      usuario@mypc:~$ tree -a temp*
      temporal

Nota: Si no tenéis instalado el comando tree, en Debian y distribuciones basadas en Debian, podéis instalarlo con el siguiente comando:

$ sudo apt install tree

 
Quizá te puedan interesar los siguientes artículos publicados en ZeppelinuX:

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.