
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é sucede si aprendió otro ajuste 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 /inicio/dnyce/TestDel.
$ pwd

Él TestDel El directorio tiene otros cuatro directorios (archivos_docx, archivo_jpg, archivo PDFy archivos_xml) en su interior se rellena con 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 del que 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 la xargs enfoque, aportes de Entrada estándar son leídas por el xargs comando y luego convertido para usar argumentos que se pueden asociar con otros comandos.
Para eliminar los archivos enumerados anteriormente tobeDeleted.txt archivo, implementaremos y ejecutaremos el xargs comando de la siguiente manera. Él xargs El comando debe apuntar a la ruta absoluta del 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 titular del lugar "{}"
cita las rutas de los nombres de archivo enumerados para el rm -r
Comando para eliminar después -I
reemplaza la cadena con la siguiente ruta de 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 archivos enumerados en otro archivo. Actualizar tobeDeleted.txt con nuevos entrantes.
$ sudo nano tobeDeleted.txt

Él sed El comando a usar para la eliminación de 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 lo elimine el rm -r
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 para asegurarse de que los archivos se eliminen con el comando gato 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
De nuevo, actualice la tobeDeleted.txt expediente con nuevos entrantes.
$ sudo nano tobeDeleted.txt

Él awk El comando a ejecutar es el siguiente:
$ awk -v q='"' '$0 = "rm -r " q $0 q' /home/dnyce/tobeDeleted.txt

Él -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 a la comando gato 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.