Linux

¿Cuál es la mejor manera de borrar directorios en Linux con el comando rm?

octubre 22, 2026 Qué es mejor? 7 min read
¿Cuál es la mejor manera de borrar directorios en Linux con el comando rm?

La mejor forma de borrar directorios en Linux: respuesta corta

Si acabas de abrir la terminal y solo necesitas borrar un directorio, rmdir para carpetas vacías y rm -r para carpetas con contenido cubren el 90% de los casos. Si escribes scripts o trabajas en servidores, te conviene añadir rm -I antes de borrar recursivamente, porque pide una sola confirmación al pasar de cierto número de archivos, a diferencia de rm -i que pregunta por cada uno y bloquea procesos largos. Para administradores que mueven directorios con miles de archivos, la opción segura es find … -delete con previsualización previa, que permite filtrar por patrón y ver qué se borrará antes de ejecutar nada. En resumen: usuario nuevo, rm -r con un ls antes; scripts, rm -rI; servidor con volumen, find.

Antes de borrar: qué tienes que tener claro

Borrar en la terminal no tiene papelera por defecto, así que cuatro comprobaciones previas evitan disgustos.

  • Estar en el directorio padre del que quieres borrar, o usar la ruta absoluta. Si no sabes dónde estás, pwd te lo dice; un pwd antes del borrado cuesta un segundo.
  • Tener permisos de escritura sobre el directorio padre, no solo sobre el contenido. Puedes tener un archivo legible y no poder borrar la carpeta que lo contiene.
  • Haber listado lo que hay dentro con ls -A o ls -la. El -A muestra casi todo salvo . y ..; el -la añade los ocultos.
  • Tener copia de seguridad o, al menos, un snapshot del sistema. En servidores, esto suele ser responsabilidad del sistema de backups o del volumen con snapshots; en escritorio, basta con mover a una carpeta temporal.

Sin listado previo, rm -rf es siempre una apuesta a ciegas.

Métodos para borrar directorios: visión de conjunto

Método Vacíos Con contenido Pide confirmación Riesgo de equivocarse
rmdir Sí No No Bajo (avisa si no está vacío)
rm -d Sí No No Bajo
rm -r Sí Sí No Alto
rm -rf Sí Sí No Muy alto
rm -I -r Sí Sí Una vez al pasar de ~5 archivos Medio
find … -delete Sí Sí No (hay que añadirlo) Medio si filtras bien
trash (papelera) Sí Sí No Bajo (se puede recuperar)

Borrar un directorio vacío: rmdir

  1. Comprueba que el directorio está vacío con ls -A nombre; la salida debe ser solo . y ...
  2. Ejecuta rmdir nombre. Si el directorio existe y está vacío, sale sin decir nada.
  3. Si está dentro de una estructura que también queda vacía, usa rmdir -p ruta/a/varios/niveles: borra el último y sube mientras queden vacíos.
  4. Si devuelve Directory not empty, no hay nada que hacer con rmdir: salta al método siguiente.

Borrar un directorio con contenido: rm -r y rm -rf

  1. Lanza primero ls -R nombre para ver el árbol completo.
  2. Si quieres ver cada paso, usa rm -r nombre sin -f; el sistema preguntará ante archivos de solo lectura.
  3. Para automatizar, añade -f y tendrás rm -rf nombre; con esto, ni los archivos de solo lectura detienen el borrado.
  4. Si el directorio tiene miles de archivos, rm -i se vuelve inservible porque pregunta uno a uno; mejor rm -I, que pregunta una sola vez a partir de unos 5 archivos al borrar recursivamente.

Ejemplo: en una carpeta con 20 000 archivos, rm -ri puede bloquearse esperando teclado; rm -rI pregunta una vez y sigue.

Borrar miles de archivos sin lanzar rm -rf a ciegas

  1. Construye el find sin -delete para previsualizar: find /ruta -type f -name '*.tmp'. La salida es la lista de archivos que se borrarían.
  2. Cuando estés seguro, añade -delete al final: find /ruta -type f -name '*.tmp' -delete.
  3. Si tu find no soporta -delete (versiones muy antiguas o BusyBox), usa xargs: find /ruta -type f -name '*.tmp' -print0 | xargs -0 rm.
  4. Como tercera opción, -exec con terminador +: find /ruta -type f -name '*.tmp' -exec rm {} +. Funciona en cualquier find POSIX.

Casos que rompen el rm normal: espacios, guiones y enlaces

Los nombres con espacios, los que empiezan por guion y los enlaces simbólicos son los tres clásicos que dan errores o resultados inesperados.

  • Espacios: usa comillas dobles o escapa con barra invertida. rm -r "mi carpeta" o rm -r mi\ carpeta. Sin esto, la shell interpreta solo la primera palabra.
  • Nombres que empiezan por -: añade ./ delante o usa -- como separador. rm -r -- -descartados o rm -r ./-descartados. Sin esto, rm interpreta el guion como una opción.
  • rm enlace/ no es un error; el problema es que, según la versión, puede seguir el enlace y borrar el destino en lugar del propio enlace. Para borrar solo el enlace, usa rm enlace sin barra final, o unlink enlace.

Errores frecuentes y cómo se pagan

Cuatro errores aparecen una y otra vez en foros y en historiales de servidores.

  • rm -rf $directorio/ con la variable vacía: si $directorio no se ha exportado o tiene un espacio raro, el comando se convierte en rm -rf /. Por eso se recomienda siempre rm -rf -- "$directorio" y, mejor aún, validar la variable antes.
  • rm -rf /mnt sin --no-preserve-root: en sistemas modernos rm rechaza borrar / como protección, pero /mnt puede contener un disco entero si está montado. Comprueba con mount | grep /mnt antes.
  • Borrar sin haber hecho ls: muchos tickets de soporte empiezan con «he borrado la carpeta equivocada porque no vi que había un carácter raro». El ls previo no es opcional en producción.
  • Esperar una papelera de reciclaje en un servidor: en escritorio hay clientes como trash-cli o gvfs-trash que envían a la papelera de GNOME/KDE, pero en un servidor sin entorno gráfico no hay papelera. Lo que se borra con rm no se recupera, salvo desde el backup.

Datos verificados en octubre de 2026.

Preguntas frecuentes sobre borrar directorios en Linux

1. ¿Cómo borrar un directorio en Linux con todo su contenido?

Usa rm -r /ruta/al/directorio para borrar la carpeta y todo lo que lleva dentro. La opción -r indica recursividad, así que el comando entra en subcarpetas y borra cada archivo. Si quieres saltarte cualquier aviso, añade -f: rm -rf /ruta/al/directorio.

2. ¿Cómo eliminar un directorio en Linux?

Para una carpeta vacía basta con rmdir /ruta/al/directorio; para una con archivos dentro, rm -r /ruta/al/directorio. Confirma con ls /ruta/al/directorio antes para asegurarte de que es lo que quieres borrar, porque rm no mueve a la papelera.

3. ¿Cuál es el comando de Linux para borrar todo de un sistema?

El meme del "borra todo" suele referirse a rm -rf /, que recorre recursivamente el sistema completo sin pedir confirmación. En la práctica es destructivo y muchos sistemas lo protegen con --no-preserve-root o requieren deshabilitar la seguridad. Lo correcto en una tarea real es limitar siempre la ruta, por ejemplo rm -rf /home/usuario/carpeta/*.

4. ¿Qué hace exactamente `rm -rf`?

rm borra, -r activa el borrado recursivo (entra en cada subdirectorio) y -f fuerza la operación saltándose los avisos y los errores por archivos protegidos. Combinado, rm -rf /ruta elimina el directorio, sus archivos y subcarpetas sin pedir confirmación previa.

5. ¿Cómo borrar un directorio con archivos dentro en Linux?

El comando habitual es rm -r /ruta/al/directorio, que elimina la carpeta y todo su contenido. Si quieres evitar la pregunta de confirmación para cada elemento, usa rm -rf /ruta/al/directorio. Antes conviene hacer ls /ruta/al/directorio para revisar qué se va a borrar.

6. ¿Cómo eliminar un directorio con archivos sin que pida confirmación en Linux?

Añade la opción -f al borrado recursivo: rm -rf /ruta/al/directorio. Con -f, rm no pregunta aunque haya archivos de solo lectura y tampoco muestra los errores por archivo. Verifica primero la ruta con pwd o ls, porque -f desactiva cualquier red de seguridad.

7. ¿Cómo borrar con `rm` usando comodines de forma recursiva?

Los comodines se expanden antes de pasar al rm, por lo que rm -r /ruta/al/directorio/.log borra todos los .log del directorio sin entrar recursivamente. Para borrar en subcarpetas también necesitas find, por ejemplo find /ruta -type f -name ".log" -delete. Haz un echo previo con los mismos patrones para ver qué coincidirá antes de ejecutar.

8. ¿Puede el comando `rm` borrar varios archivos a la vez: verdadero o falso?

Verdadero. rm acepta varios archivos en la misma línea, separados por espacios: rm archivo1.txt archivo2.txt archivo3.log los elimina de una sola pasada. Para directorios completos se añade -r y para evitar avisos, -f.

Fuentes

  1. LinuxizeHow to Remove (Delete) Files and Directories in Linuxconsultado el 13/10/2026
  2. VirtarixHow to Delete a Directory in Linux Safely | Virtarixconsultado el 13/10/2026
  3. WarpHow To Remove a Directory in Linux / Unix – rm vs. rmdir | Warpconsultado el 13/10/2026
  4. ContaboDelete Directories in Linux: rm and rmdir Explained – Contaboconsultado el 13/10/2026