Cómo eliminar archivos y directorios en el terminal Linux

Los comandos rm y rmdir eliminan archivos y directorios en Linux, macOS y otros sistemas operativos similares a Unix. Son similares a los comandos del deltreo de Windows y DOS. Estos comandos son muy potentes y tienen bastantes opciones.

Es importante tener en cuenta que los archivos y directorios eliminados usando rm y rmdir no se mueven a la Papelera. Se eliminan inmediatamente de su ordenador. Si elimina archivos accidentalmente utilizando estos comandos, la única forma de restaurarlos es desde una copia de seguridad.

Cómo quitar archivos con rm

El caso más simple es borrar un solo archivo en el directorio actual. Escriba el comando rm, un espacio y, a continuación, el nombre del archivo que desea eliminar.

rm archivo_1.txt

Si el archivo no está en el directorio de trabajo actual, proporcione una ruta a la ubicación del archivo.

rm./ruta/al/archivo/archivo/archivo_1.txt

Puede pasar más de un nombre de archivo a rm. Al hacerlo, se eliminan todos los archivos especificados.

rm archivo_2.txt archivo_3.txt

Los comodines se pueden utilizar para seleccionar grupos de archivos a eliminar. El asterisco () representa varios caracteres y el asterisco () representa un solo carácter. Este comando borraría todos los archivos de imagen png en el directorio de trabajo actual.

rm *.png

Este comando borraría todos los archivos que tienen una sola extensión de carácter. Por ejemplo, esto eliminaría File.1 y File.2, pero no File.12.

rm *.?

Si un archivo está protegido contra escritura, se le pedirá que lo borre. Debe responder con s o n y pulsar «Enter».

Linux

Para reducir el riesgo de utilizar rm con comodines, utilice la opción -i (interactiva). Esto requiere que confirme el borrado de cada archivo.

rm -i *.dat

Linux

La opción -f (fuerza) es lo contrario de la opción interactiva. No pide confirmación incluso si los archivos están protegidos contra escritura.

rm -f nombre de archivo

Cómo quitar directorios con rm

Para eliminar un directorio vacío, utilice la opción -d (directorio). Puede utilizar comodines (* y ?) en los nombres de directorios de la misma manera que con los nombres de archivos.

directorio rm -d

Si se proporciona más de un nombre de directorio, se eliminan todos los directorios vacíos especificados.

rm -d directorio1 directorio2 /ruta/a/directorio3

Para eliminar directorios que no estén vacíos, utilice la opción -r (recursiva). Para ser claros, esto elimina los directorios y todos los archivos y subdirectorios contenidos en ellos.

rm -r directorio1 directorio2 directorio3

Si un directorio o un archivo está protegido contra escritura, se le pedirá que confirme la eliminación. Para eliminar los directorios que no están vacíos y para suprimir estas indicaciones, utilice las opciones -r (recursiva) y -f (forzar) juntas.

directorio rm -rf

Se requiere cuidado aquí. Si comete un error con el comando rm -rf puede provocar la pérdida de datos o un mal funcionamiento del sistema. Es peligroso, y la precaución es la mejor política. Para comprender la estructura de directorios y los archivos que serán eliminados por el comando rm -rf, utilice el comando árbol.

Utilice apt-get para instalar este paquete en su sistema si está utilizando Ubuntu u otra distribución basada en Debian. En otras distribuciones de Linux, use en su lugar la herramienta de administración de paquetes de su distribución de Linux.

sudo apt-get install tree

Ejecutar el comando árbol produce un diagrama sencillo de entender de la estructura de directorios y los archivos debajo del directorio desde el que se ejecuta.

tree

También puede proporcionar una ruta al comando de árbol para que inicie el árbol desde otro directorio del sistema de archivos.

ruta del tree/a/al/directorio

El comando rm también tiene las opciones –uno-sistema-de-archivo, –no-preserve-root, –preserve-root, pero sólo se recomiendan para usuarios avanzados. Si se equivoca en algo, puede borrar accidentalmente todos los archivos del sistema. Consulte la página del manual del comando para más información.

Cómo quitar directorios con rmdir en Linux

Hay otro comando, llamado rmdir, que puede usar para borrar directorios. La diferencia entre rm y rmdir es que rmdir sólo puede borrar directorios que están vacíos. Nunca borrará archivos.

El caso más simple es borrar un solo directorio vacío. Al igual que con rm, puede pasar varios nombres de directorios a rmdir , o una ruta a un directorio.

Eliminar un solo directorio en el directorio actual pasando su nombre a rmdir :

directorio rmdir

Eliminar múltiples directorios pasando una lista de nombres a rmdir:

rmdir directorio1 directorio2 directorio3

Elimine un directorio que no esté en el directorio actual especificando la ruta completa a ese directorio:

rmdir /ruta/a/directorio

Si intenta eliminar una carpeta que no está vacía, rmdir le dará un mensaje de error. En el siguiente ejemplo rmdir borra exitosamente, y silenciosamente, el directorio de clientes pero se niega a borrar el directorio de proyectos porque contiene archivos. El directorio de proyectos se deja exactamente como estaba y los archivos en él están intactos.

Linux

Cuando rmdir da un error «Directorio no vacío», deja de procesar los directorios que le fueron pasados en la línea de comandos. Si le has pedido que borre cuatro directorios y el primero tiene archivos, rmdir te dará el mensaje de error y no hará nada más. Puede forzarlo a ignorar estos errores con la opción –ignore-fail-on-non-empty para que se procesen otros directorios.

En el siguiente ejemplo se han pasado dos carpetas a rmdir, que son trabajo/informes y trabajo/comillas. La opción –ignore-fail-on-non-empty ha sido incluida en el comando.

La carpeta de trabajo/informes contiene archivos, por lo que rmdir no puede eliminarla. La opción –ignore-fail-on-non-empty obliga a rmdir a ignorar el error y pasar a la siguiente carpeta que necesita procesar, que es work/quotes. Esta es una carpeta vacía, y rmdir la borra.

Este fue el comando utilizado.

rmdir –ignore-fail-on-non-empty work/reports /work/quotes

Linux

Puede utilizar la opción -p (padres) para borrar un directorio y también para borrar sus directorios principales. Este truco funciona porque rmdir comienza con el directorio de destino y luego retrocede hasta el padre. Ese directorio ahora debería estar vacío, para que pueda ser eliminado por rmdir, y el proceso se repite retrocediendo por la ruta que se le proporcionó a rmdir.

En el siguiente ejemplo el comando que se pasa a rmdir es:

rmdir -p work/invoices

Linux

Tanto las facturas como los directorios de trabajo se eliminan, tal y como se solicitó.

Ya sea que esté usando Bash o cualquier otro shell, Linux proporciona comandos flexibles y potentes para que elimine directorios y archivos directamente desde la línea de comandos del terminal.

Algunas personas prefieren tener un flujo de trabajo que gira alrededor de la terminal. Otros pueden no tener otra opción en el asunto. Pueden estar trabajando en servidores sin una GUI instalada o en una sesión remota en un sistema sin cabeza como un frambuesa Pi. Estos comandos son perfectos para ese grupo de personas.

Pero cualquiera que sea el tipo de flujo de trabajo que prefiera, estos comandos se prestan muy bien para ser incluidos en scripts de shell. Si un script es activado por un trabajo cron, puede ayudar a automatizar tareas rutinarias de limpieza como la purga de archivos de registro no deseados.

Si investiga ese caso de uso, recuerde la potencia de estos comandos, pruebe todo cuidadosamente y mantenga siempre una copia de seguridad reciente de Linux.


¿Tienes alguna pregunta o problema relacionado con el tema del artículo? Queremos ayudarte.

Deja un comentario con tu problema o pregunta. Leemos y respondemos todos los comentarios, aunque a veces podamos tardar un poco debido al volumen que recibimos. Además, si tu consulta inspira la escritura de un artículo, te notificaremos por email cuando lo publiquemos.
*Moderamos los comentarios para evitar spam.

¡Gracias por enriquecer nuestra comunidad con tu participación!

Deja un comentario