Bajo una distribución de sistema operativo Linux, todo vale. Dichos entornos de sistemas operativos de código abierto lo llevan a través de una montaña rusa en todo lo que hay que saber sobre los sistemas operativos.
Un aspecto clave que define fuertemente la necesidad y la necesidad continua de un sistema operativo es la gestión de archivos. Ningún sistema operativo maneja la administración de archivos mejor que Linux. Ya sea que desee restringir, crear o mejorar la seguridad de su sistema y archivos de usuario, Linux brinda la mejor experiencia y rendimiento para el usuario.
La terminal de Linux o la interfaz de línea de comandos es un entorno flexible para manipular archivos a través de comandos asociados con la creación, el cambio de nombre, el movimiento y la eliminación de archivos. ¿Qué pasaría si aprendieras otro truco de manipulación de archivos?
Este artículo nos guiará a través de la eliminación de archivos enumerados en otro archivo en un entorno de sistema operativo Linux.
Escenario práctico
Propondremos un árbol de directorios ficticio como referencia. Considere la siguiente estructura de árbol de directorios:
$ tree
De la captura de pantalla anterior, TestDel es el directorio principal con su ruta absoluta siendo /home/dnyce/TestDel .
$ pwd
El TestDel directorio tiene otros cuatro directorios (docx_files , archivo_jpg , archivo_pdf y archivos_xml ) en su interior lleno de archivos de diferentes formatos (docx, jpg, pdf y xml).
Ahora, si queremos eliminar algunos de estos archivos, primero debemos enumerar su ruta absoluta en un archivo. Crearemos un archivo de texto llamado tobeDeleted.txt y agregue la ruta a algunos de estos archivos.
$ sudo nano tobeDeleted.txt
Ahora que tenemos el archivo desde el cual se eliminarán los archivos enumerados, ahora podemos analizar las metodologías viables que iniciarán y ejecutarán su eliminación.
Método 1:usar el comando xargs
Bajo los xargs enfoque, entradas de stdin son leídos por los xargs comando y luego convertido para usar argumentos que se pueden asociar con otros comandos.
Para eliminar los archivos enumerados en el tobeDeleted.txt anterior archivo, implementaremos y ejecutaremos los xargs comando de la siguiente manera. Los xargs el comando debe apuntar a la ruta absoluta de tobeDeleted.txt archivo de texto.
$ xargs -I{} rm -r "{}" < /home/dnyce/tobeDeleted.txt
El comando lee la ruta absoluta de los archivos enumerados y luego verifica su ubicación real para que comience la eliminación.
El marcador de posición "{}"
cita las rutas de los nombres de archivo enumerados para el rm -r
comando para eliminar después de -I
reemplaza la cadena con la ruta del siguiente nombre de archivo que se eliminará.
Ahora podemos continuar y ejecutar el comando de árbol para asegurarnos de que los archivos enumerados se eliminaron realmente con el siguiente resultado del comando cat como punto de referencia.
$ cat tobeDeleted.txt
$ tree /home/dnyce/TestDel
Como puede ver, nos quedan 10 archivos de los 13 archivos iniciales.
Método 2:usar el comando sed
El enfoque compacto de una sola línea de sed nos ayudará fácilmente a eliminar los archivos enumerados en otro archivo. Actualizar tobeDeleted.txt con nuevos participantes.
$ sudo nano tobeDeleted.txt
El sed El comando que se usará para eliminar los archivos que se muestran en la captura de pantalla anterior tendrá el siguiente aspecto:
$ sed 's/.*/rm -r "\0"/' /home/dnyce/tobeDeleted.txt
El marcador de posición "\0"
apunta a la ruta del nombre del archivo para que el rm -r
lo elimine comando donde s
trata las rutas de archivo como elementos separados en la lista con diferentes extensiones de archivo (.*)
.
Como habrás notado, el sed El comando no realiza la eliminación real del archivo por nosotros, sino que genera los comandos de eliminación apropiados que podemos ejecutar cómodamente.
Vuelva a ejecutar el árbol comando para asegurarse de que los archivos se eliminen con el comando cat salida como punto de referencia.
$ cat /home/dnyce/tobeDeleted.txt
$ tree /home/dnyce/TestDel
Logramos eliminar los archivos enumerados.
Método 3:usar el comando awk
Nuevamente, actualice el tobeDeleted.txt archivo con nuevos participantes.
$ sudo nano tobeDeleted.txt
El awk El comando a ejecutar es el siguiente:
$ awk -v q='"' '$0 = "rm -r " q $0 q' /home/dnyce/tobeDeleted.txt
El -v
asigna la variable q
con valor de marcador de posición "
y '$0 = "rm -r " q $0 q'
genera el comando resultante para eliminar cada uno de los archivos enumerados.
Como se señaló, el awk El comando tampoco realiza la eliminación real de los archivos enumerados por nosotros, pero genera los comandos que podemos usar:
Ejecutar el árbol comando en referencia al comando cat salida para confirmar la eliminación de los archivos.
$ cat /home/dnyce/tobeDeleted.txt
$ tree /home/dnyce/TestDel
Ha agregado con éxito una nueva habilidad a sus rutinas de administración de archivos de Linux.