Pregunta: ¿Cómo puedo eliminar un directorio vacío, un directorio con archivos y subdirectorios en Linux/Unix? Además, ¿cómo puedo usar un alias de manera efectiva para el comando rm y rmdir?
Respuesta: Puede eliminar un directorio vacío con el comando rmdir o un directorio con contenido con el comando rm. La eliminación se puede realizar de forma interactiva, recursiva, forzada o a través de un alias. En este artículo, revisemos 5 ejemplos prácticos que muestran cómo eliminar los directorios en sistemas similares a Linux.
1. ¿Cómo eliminar directorios vacíos en Unix?
El comando rmdir eliminará los directorios vacíos. es decir, directorio sin subdirectorios ni archivos.
rmdir DIRNAME
Para asegurarse de que está eliminando un directorio vacío, debe usar el comando rmdir. Si hay algún
archivo/directorio en ese directorio, mostrará el siguiente error.
$ rmdir test rmdir: failed to remove `test': Directory not empty
2. ¿Cómo eliminar directorios vacíos anidados en Linux?
Utilice la opción -p para eliminar directorios anidados como se muestra a continuación.
$ rmdir -p dir1/dir2/dir3
Nota:No entre en pánico sobre cómo un directorio puede anidarse y también estar vacío. Está anidado cuando invoca el comando, pero primero elimina el directorio más interno y deja vacío el directorio del siguiente nivel y luego elimina ese directorio. Y lo sigue haciendo.
El rmdir -p dir1/dir2/dir3 es equivalente a
$ rmdir dir1/dir2/dir3 dir1/dir2 dir1
3. Eliminar directorio que tiene contenido (es decir, directorio con archivos y subdirectorios)
Algunas veces es posible que desee eliminar el directorio que tiene contenido. Puede hacerlo con el comando rm como se muestra a continuación.
$ rm -rf DIRNAME
Esto eliminará el directorio, incluidos todos los archivos y subdirectorios. Esto es muy peligroso cuando lo usa accidentalmente ya que no puede recuperar esos archivos fácilmente. Por lo tanto, se recomienda encarecidamente que preste atención y lo piense dos veces antes de ejecutar el comando rm -rf.
4. Eliminar de forma interactiva:evite usar -f en rm en las primeras etapas.
Si alguna vez ejecutó accidentalmente rm -rf por error, es posible que desee considerar seriamente usar la opción -i para eliminar los archivos y carpetas de forma interactiva como se muestra a continuación (especialmente en la raíz).
Eliminar un directorio de forma recursiva e interactiva.
# rm -ir DIRNAME
Eliminar un archivo de forma interactiva.
# rm -i FILENAME
Si es un novato de Linux, no use la opción -f en la raíz hasta que se sienta muy cómodo con la línea de comando. En su lugar, intente usar la opción -i como se muestra arriba.
5. Alias útiles de rm y rmdir
Puede hacer que la opción rm interactiva sea su comando rm predeterminado usando un alias como se muestra a continuación.
Alias para hacer rm interactivo
# alias rm="rm -i"
Mientras usa el comando rm, siempre ejecutará rm -i y solicitará confirmación antes de eliminar cualquier archivo. Pero tenga cuidado de que cuando dé la opción -f, no obtendrá el aviso interactivo incluso si tiene la opción -i.
Por ejemplo, en el siguiente comando -i no tiene ningún efecto.
$ rm -irf DIRNAME
En este caso, el comando anterior (con el alias rm) es equivalente al siguiente comando.
$ rm -rf DIRNAME
Todas las siguientes opciones de rm son válidas y tienen la misma funcionalidad. es decir, eliminación recursiva y forzada.
- rm-fr
- rm-rf
- rm-r-f
- rm -f -r
Alias para hacer rm detallado
Si desea que rm o rmdir impriman lo que está haciendo, puede usar la opción detallada tradicional.
alias rm="rm -v" alias rmdir="rmdir -v"
Nota:haga que esta configuración sea permanente agregando el comando de alias al archivo ~/.bash_profile (o) ~/.bashrc.
Puede eliminar archivos o directorios, vacíos o no vacíos, anidados o únicos mediante los comandos rm y rmdir. Pero antes de invocar el comando, piénselo dos veces antes de eliminarlo, ya que será difícil recuperar un archivo una vez que lo haya eliminado por error.
¿Alguna vez ha eliminado archivos por error usando el comando rm o rm -r? ¿Cómo manejaste esa situación? Comparta su historia con nosotros en la sección de comentarios a continuación.