GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo eliminar archivos enumerados en otro archivo en Linux

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.


Linux
  1. Cómo convertir archivos a codificación UTF-8 en Linux

  2. Cómo ver o cambiar ACL en archivos de Linux

  3. Cómo extraer archivos .gz y .tar.gz en Linux

  4. ¿Cómo se eliminan archivos anteriores a la fecha específica en Linux?

  5. ¿Cómo eliminar archivos .fuse_hidden*?

Cómo truncar archivos (vacíos) en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo descomprimir los archivos gz en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo quitar/eliminar archivos en Linux usando el comando rm

Cómo comprimir un archivo en Linux