rm: cómo eliminar archivos y carpetas con este comando del Terminal
Eliminar un archivo en cualquier sistema operativo suele ser tan fácil como hacer clic sobre él y presionar la tecla suprimir o hacer clic derecho y enviar a la papelera. Eso sabemos hacerlo todos y es la mejor opción para eliminar un archivo que tengamos delante. Pero, ¿qué pasa cuando lo que queremos es, por ejemplo, eliminar varios archivos que están dentro de una misma carpeta? Pasa que en Linux tenemos el comando rm que nos permitirá eliminar prácticamente cualquier cosa desde el terminal.
“rm” es la abreviación de “remove”, que es “eliminar” en inglés. Se usa para eliminar archivos y si se usa de manera recursiva también nos permitirá eliminar directorios. Por defecto no eliminará directorios y sí eliminará cualquier archivo especificado en la línea de comandos. El proceso de eliminación desvincula un nombre de archivo de un sistema de archivos de sus datos asociados y marca el espacio de almacenamiento como usable para escrituras futuras. Hay que tener cuidado, porque una vez eliminado algo con rm ya no se puede recuperar.
Opciones disponibles para rm
-f, –force |
Ignora archivos inexistentes y nunca pregunta antes de la eliminación. |
-i | Pregunta antes de la eliminación. |
-I | Pregunta una vez antes de eliminar más de tres archivos o al eliminar recursivamente. |
–interactive[=WHEN] | Pregunta de acuerdo a WHEN: nunca, una vez (-I), o siempre (-i). Si WHEN no se especifica, pregunta siempre. |
–one-file-system | Al eliminar una jerarquía recursivamente, omite cualquier directorio que está en un directorio diferente del que corresponde al argumento de la línea de comandos. |
–no-preserve-root | No trata el directorio raíz de ninguna manera especial. |
–preserve-root | No elimina el directorio raíz, lo que es el comportamiento por defecto. |
-r, -R, –recursive |
Elimina directorios y su contenido recursivamente. |
-d, –dir |
Elimina directorios vacíos. Esta opción nos permite eliminar un directorio sin especificar -r/-R/–recursive. |
-v, –verbose |
Modo Verbose; Explica en todo momento qué se está haciendo. |
–help | Muestra un mensaje de ayuda.. |
–version | Muestra información de la versión. |
Ejemplos prácticos
rm no elimina directorios por defecto. Para ello deberemos usar las opciones -r/-R/–recursive. Si un directorio está vacío hay que usar la opciónn -d/–dir. Si queremos eliminar un archivo que empieza con un guión (-), tenemos que añadir un doble guión (–) separado antes del nombre del archivo. Si no se añade el segundo guión, rm puede malinterpretar el nombre del archivo como una opción. No está de más recordar que el asterisco (*) significa “todo lo que coincida con”, añadiéndose delante “*.” y detrás sólo el asterisco.
Por ejemplo, para eliminar el archivo “-prueba.txt” tendríamos que usar el comando
rm -- -prueba.txt
Lo anterior será en el caso en el que esté en nuestra carpeta personal. Si no es así, tendremos que añadir la ruta completa, lo que quedaría algo así como:
rm /home/pablinux/Documentos/-file
La diferencia entre las dos opciones es que en el segundo caso tiene delante una barra (/), lo que hace que la opción no se confunda.
Otros ejemplos serían:
- rm -f prueba-txt: eliminará el archivo “prueba.txt” sin preguntar aunque esté protegido.
- rm *: eliminará todos los archivos del directorio en el que estemos desde el terminal. Si tiene protección de escritura, nos preguntará antes de eliminarlo.
- rm -f *: eliminará todo lo que haya dentro del directorio sin preguntar.
- rm -i *: intentará eliminar todos los archivos de un directorio, pero preguntará cada vez que vaya a eliminar uno.
- rm -I *: como el anterior, pero sólo pedirá confirmación si hay más de tres archivos.
- rm -r directorio, donde “directorio” es uno en concreto: eliminará el directorio “directorio” y cualquier archivo y subdirectorio que contenga. Si algún archivo o subdirectorio tiene protección de escritura, preguntará.
- rm -rf directorio: lo mismo que el anterior, pero no preguntará.
El comando que nunca debes usar: rm -rf /
Y terminamos con un comando que podemos ver en redes sociales más a modo de broma que otra cosa. El comando anterior significa 1- eliminar, 2- todo lo que pueda de manera recursiva y 3- empezando por la raíz. Por cómo gestiona Linux las unidades, también eliminará el contenido de cualquier disco duro que tengamos conectado a nuestro ordenador. Si lo usáis, no digáis que no habíamos avisado.
El artículo rm: cómo eliminar archivos y carpetas con este comando del Terminal ha sido originalmente publicado en Linux Adictos.