El comando rm en UNIX significa eliminar y, de forma predeterminada, se usa para eliminar archivos. Es un comando simple pero poderoso, especialmente cuando se usa con opciones como -rf, que le permite eliminar directorios que no están vacíos a la fuerza.
Eliminación de archivos en Linux:
El comando rm , de forma predeterminada, no puede eliminar directorios y solo funciona en archivos.
$ mkdir A $ touch B.txt $ rm B.txt $ rm A
Usamos los comandos mkdir y touch para crear directorios y archivos de texto respectivamente, y el comando ls para listar archivos en el directorio de trabajo actual.
Eliminación de varios archivos en Linux:
Para eliminar varios archivos a la vez, podemos escribir nombres de archivos separados por espacios después del comando rm o usar un patrón para eliminar varios archivos que se ajusten al patrón.
$ rm a b $ rm *.txt [Pattern]
Eliminación de un directorio en Linux:
Para eliminar un directorio, puede usar el modificador -r o -R, que elimina un directorio de forma recursiva, incluido su contenido (subdirectorios y archivos). Si es un directorio vacío, también puede usar el comando rmdir .
$ rm a/ $ rm -R a/
Eliminación de archivos con solicitud de confirmación:
Para obtener un mensaje de confirmación al eliminar un archivo, use la opción -i.
$ rm -i a.txt
Eliminación de directorios con solicitud de confirmación:
Para obtener un mensaje de confirmación al eliminar un directorio y sus subdirectorios, use la opción -R y -i.
$ rm -Ri A/
Eliminación de archivos o directorios a la fuerza:
Para eliminar un archivo o directorio a la fuerza, puede usar la opción -f forzar una operación de eliminación sin que rm le pida confirmación. Por ejemplo, si un archivo no se puede escribir, rm le preguntará si desea eliminar ese archivo o no, para evitar esto y simplemente ejecutar la operación.
$ rm -f a.txt
Cuando combina los indicadores -r y -f, significa que elimina de forma recursiva y forzada un directorio (y su contenido) sin solicitar confirmación.
$ rm -rf B
Aquí, creamos un archivo de texto y un directorio y lo hicimos de solo lectura tomando su acceso de escritura usando el comando chmod .
Mostrar información durante la eliminación:
Para mostrar más información al eliminar un archivo o directorio, use la opción -v, esto habilitará el comando rm para mostrar lo que se está haciendo en la salida estándar.
$ rm -rv *
¿Es el comando rm -rf a prueba de balas?
rm -rf tan poderoso como es, solo puede omitir el acceso de solo lectura de archivos anidados y no de directorios. Para eliminar el directorio (B/C) necesitamos acceder a él a través de privilegios de superusuario.
No se recomienda usar este comando como superusuario si no está 100% seguro de lo que está haciendo, ya que puede eliminar archivos importantes.
El comando “rm -Rf /”:
Siempre debe tener en cuenta que «rm -rf» es uno de los comandos más peligrosos, que nunca debe ejecutar en un sistema Linux, especialmente como root. El siguiente comando borrará todo en su partición raíz (/).
$ sudo rm -rf /
Hay comprobaciones para evitar la eliminación de la raíz, pero la opción adicional de omitir la raíz no conservada es a prueba de fallas. Es un meme en Internet que es equivalente a la eliminación de system32 en la unidad C:\ del sistema operativo de Windows.
$ sudo rm -rf / --no-preserve-root
No debe usar el comando anterior en ningún caso, para los curiosos lo hice usando el comando con –no-preserve-root. Y después de la eliminación de algunos archivos y directorios importantes, no me quedó nada más que la salida colgada que se muestra a continuación.
Crear alias para el comando rm en Linux:
Para usar la opción -i de forma permanente por seguridad, agregue un alias en su archivo $HOME/.bashrc .
alias rm="rm -i"
Obtenga su archivo .bashrc como se muestra o abra una nueva terminal para que los cambios surtan efecto.
$ source $HOME/.bashrc
Ahora, cada vez que ejecute rm, se invocará con la opción -i de forma predeterminada (pero usar el indicador -f anulará esta configuración).
¿RM realmente elimina un archivo?
rm en realidad no elimina los archivos, sino que los desvincula (libera la memoria para su uso posterior). Para eliminar permanentemente los datos, puede usar el comando shred o dd .