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.logOpciones más útiles de rm
| Opción | Qué hace | Cuándo usarla |
|---|---|---|
-i | Pide confirmación antes de borrar cada archivo. | Siempre que no estés seguro de lo que vas a borrar. |
-I | Pregunta una sola vez si vas a borrar más de tres archivos o una carpeta entera. | Un punto medio entre seguridad y comodidad. |
-r | Borra carpetas con todo su contenido (recursivo). | Para eliminar directorios que no están vacíos. |
-f | Fuerza el borrado: no pregunta y no avisa si algo no existe. | En scripts, y con muchísimo cuidado. |
-v | Muestra cada archivo a medida que lo borra. | Para ver qué está pasando. |
-d | Borra 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'? sBorrar 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 *.logBuena 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.txtPara 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 antiguano borra «web antigua»: borra/var/www/weby 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 conpwdantes 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 enrm -rf /. Escríbelo comorm -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~/.bashrcy rm preguntará siempre (con\rmse salta el alias cuando lo necesites). - trash-cli: el comando
trash-putmueve los archivos a una papelera, como en el escritorio, ytrash-restorelos devuelve. - Mover antes de borrar: si dudas, muévelo a una carpeta temporal con
mvy 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.