30 días de garantía de devolución en tu hosting: si no te convence, te devolvemos el dinero.

Comando rm en Linux: cómo borrar archivos y carpetas sin sustos

rm es el comando de Linux para borrar archivos y carpetas. Es sencillo y rapidísimo, y por eso mismo peligroso: no hay papelera. Aquí tienes sus opciones, ejemplos y las precauciones que te ahorrarán un disgusto.

Terminal de Linux en la que rm -i pide confirmación antes de borrar notas.txt, que desaparece sin pasar por la papelera

rm (de remove, «eliminar») es el comando que se usa en Linux, y en macOS, para borrar archivos y carpetas desde la terminal. Es de los primeros que se aprenden al administrar un servidor y de los que más respeto merecen: lo que borra rm no va a la papelera. Desaparece en el acto y no hay «deshacer».

Sintaxis básica del comando rm

rm [opciones] archivo1 archivo2 …

Sin opciones, rm borra los archivos que le indiques y no dice nada si todo ha ido bien. Si el archivo no existe o no tienes permiso para borrarlo, muestra un error.

rm notas.txt
rm informe.pdf copia.zip antiguo.log

Opciones más útiles de rm

OpciónQué haceCuándo usarla
-iPide confirmación antes de borrar cada archivo.Siempre que no estés seguro de lo que vas a borrar.
-IPregunta una sola vez si vas a borrar más de tres archivos o una carpeta entera.Un punto medio entre seguridad y comodidad.
-rBorra carpetas con todo su contenido (recursivo).Para eliminar directorios que no están vacíos.
-fFuerza el borrado: no pregunta y no avisa si algo no existe.En scripts, y con muchísimo cuidado.
-vMuestra cada archivo a medida que lo borra.Para ver qué está pasando.
-dBorra carpetas vacías.Equivale a rmdir.

Ejemplos prácticos

Borrar un archivo pidiendo confirmación

rm -i notas.txt
rm: ¿borrar el fichero regular 'notas.txt'? s

Borrar una carpeta y todo lo que contiene

rm -r fotos-antiguas/

Si la carpeta está vacía basta con rmdir fotos-antiguas, que además se niega a borrarla si dentro queda algo: es una forma segura de limpiar.

Borrar todos los archivos de un tipo

rm *.log

Buena costumbre: antes de borrar con comodines (*), ejecuta ls con el mismo patrón, por ejemplo ls *.log. Así ves exactamente qué va a desaparecer antes de que desaparezca.

Borrar archivos con nombres raros

Si un archivo empieza por guion (-archivo.txt), rm cree que es una opción. Usa -- para indicar que lo que sigue son nombres, o pon la ruta delante:

rm -- -archivo.txt
rm ./-archivo.txt

Para nombres con espacios, entrecomíllalos: rm "mi archivo.txt".

rm -rf: el comando que hay que respetar

La combinación rm -rf borra carpetas enteras sin preguntar nada. Es muy útil y es también la causa de los peores sustos en servidores, casi siempre por una de estas tres cosas:

  • Un espacio de más. rm -rf /var/www/web antigua no borra «web antigua»: borra /var/www/web y luego intenta borrar «antigua» en la carpeta en la que estés.
  • Estar en la carpeta equivocada. rm -rf * borra todo lo que hay en la carpeta actual. Comprueba dónde estás con pwd antes de lanzarlo.
  • Una variable vacía en un script. Si en un script escribes rm -rf $CARPETA/ y la variable está vacía, el comando se convierte en rm -rf /. Escríbelo como rm -rf "${CARPETA:?}/": si la variable está vacía, el script se detiene en vez de borrar.

Las versiones actuales de rm se niegan a ejecutar rm -rf / (la protección --preserve-root viene activada), pero no protegen de rm -rf /* ni de borrar carpetas importantes una a una. Trabaja con un usuario normal y usa sudo solo cuando haga falta.

¿Se puede recuperar un archivo borrado con rm?

En la práctica, no. rm no mueve los archivos a ninguna papelera: libera el espacio que ocupaban para que el sistema lo reutilice. Existen herramientas forenses que a veces recuperan algo de un disco que no se ha vuelto a escribir, pero en un servidor en marcha, que escribe constantemente, las posibilidades son mínimas.

La única protección real son las copias de seguridad. En un VPS Linux con copias diarias y snapshots puedes volver al estado de antes del error en minutos. Haz un snapshot antes de cualquier limpieza grande.

Alternativas más seguras a rm

  • Un alias con -i: añade alias rm='rm -i' a tu archivo ~/.bashrc y rm preguntará siempre (con \rm se salta el alias cuando lo necesites).
  • trash-cli: el comando trash-put mueve los archivos a una papelera, como en el escritorio, y trash-restore los devuelve.
  • Mover antes de borrar: si dudas, muévelo a una carpeta temporal con mv y bórralo cuando hayas comprobado que nada se ha roto.

Practica en tu propio servidor Linux

Un VPS con KVM, discos NVMe, copias diarias y snapshots: si un rm se te va de las manos, vuelves al estado anterior desde el panel.

Ver servidores VPS Linux

Preguntas frecuentes

Es el comando para borrar archivos y carpetas desde la terminal. Su nombre viene de «remove» (eliminar). Lo que borra no pasa por la papelera, así que no se puede deshacer.

Con rm -r nombre-carpeta, que borra la carpeta y todo su contenido. Si está vacía, también puedes usar rmdir nombre-carpeta.

Combina -r (borrar carpetas con todo lo que contienen) y -f (forzar, sin preguntar ni avisar). Es útil pero peligroso: revisa siempre la ruta antes de ejecutarlo.

No. rm no tiene papelera. Lo único que permite volver atrás es tener una copia de seguridad o un snapshot del servidor de antes del borrado.