rm: cómo eliminar archivos y carpetas con este comando del Terminal

Comando rm

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.


Un comentario, deja el tuyo

  1.   Cristian dijo

    Interesante lo de la aclaración con respecto al último comando, sabía que podía eliminar todo el contenido del disco donde está el sistema, pero no sabía que también eliminaba el contenido de cualquier otro disco que tengamos conectado!

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.