Cómo usar Xargs con Find en Linux

Cómo usar Xargs con Find en Linux
Este tutorial explica cómo usar los comandos xargs y encontrar para realizar operaciones combinadas.

Después de leer este tutorial, puede buscar archivos utilizando el comando Buscar y ejecutar un comando específico basado en resultados coincidentes.

Las instrucciones y ejemplos son útiles para la mayoría de las distribuciones de Linux. El contenido está optimizado tanto para usuarios de Linux nuevos y experimentados.

Todos los pasos descritos en este artículo contienen capturas de pantalla para facilitar que todos los usuarios de Linux las entiendan y apliquen.

Los ejemplos de uso incluidos en este artículo son los siguientes:

  • Buscar y eliminar archivos por extensión (tipo de archivo).
  • Buscar y eliminar archivos por nombre.
  • Buscar y cambiar los permisos de archivo según los permisos actuales.

Breve introducción a los comandos Find y Xargs

El Xargs comando, cuando se combina con otros comandos como encontrar, usa la salida del primer comando como argumento.

Por ejemplo, ejecutemos el encontrar Comando para identificar archivos con una extensión o tipo de archivo específico. Podemos agregar el Xargs comando ejecutar una acción para todos los archivos que coinciden con la extensión especificada con encontrar.

Como puede ver en la siguiente línea, una tubería separa el comando 1 y el comando 2, donde el comando 1 puede ser cualquier comando como LS, y el comando 2, incluido el comando xargs, seguido de una acción específica como gato.

[Comando 1] | [Comando 2]

El ejemplo aplicable sería:

LS | gato xargs

Este comando enumerará todos los archivos dentro del directorio actual. Luego, XARGS utilizará la salida (archivos enumerados) como argumento, y su contenido se imprimirá según las instrucciones de gato xargs. Vea la siguiente captura de pantalla:

Cómo encontrar y mover archivos usando xargs

La primera sección de este tutorial explica cómo usar comandos Find y XARGS para buscar y mover archivos que coinciden con una condición, en este caso, el tipo de archivo.

Comencemos por encontrar archivos por extensión y moverlos a un directorio específico utilizando Xargs.

Antes de comenzar, ejecute el LS Comando para mostrar archivos y directorios dentro de mi subdirectorio nombrado testdir.

LS

Como puede ver, hay diferentes tipos de archivos, que incluyen .TXT, .C, y archivos sin extensiones. Además, preste atención al tutorialdir directorio.

Supongamos que desea mover archivos con una extensión específica a un directorio. La sintaxis es la siguiente:

encontrar -nombre '*.'-Tipo F | Xargs MV -T

En la sintaxis anterior, la -nombre La opción precede al nombre o condición del archivo en función del nombre del archivo. El -tipo F La opción especifica que el comando Find con archivos y no directorios. El -T La opción anterior al directorio de destino se utiliza para definir el directorio de destino. Preste atención al comodín (*) anterior a la extensión, instruyendo al comando encontrar para buscar todos los archivos de la extensión especificada independientemente del nombre.

Por lo tanto, si quieres mover todo .TXT Archivos al directorio nombrado tutorialdir, Ejecutar el siguiente comando:

encontrar . -nombre '*.txt '-type f | xargs mv -t tutorialdir

Como puede ver, después de ejecutar el LS comando dos veces, los archivos se movieron del directorio actual al tutorialdir subdirectorio.

La sintaxis es la misma para todos los tipos de archivos. Repetámoslo, esta vez para .C Archivos:

encontrar . -nombre '*.C ' - -Type F | xargs mv -t tutorialdir

El primer comando LS muestra tres .C Archivos en el directorio actual. Después de ejecutar el comando encontrar con xargs, el comando de árbol muestra todo .Los archivos C se trasladaron al tutorialdir directorio, donde .TXT Los archivos fueron llevados en el ejemplo anterior.

Buscar y eliminar archivos y directorios por su nombre con xargs

La sintaxis para encontrar y eliminar archivos usando XARGS es lo siguiente:

encontrar -nombre | Xargs RM

Aquí es donde es el directorio principal que busca archivos, y es el nombre del archivo que desea encontrar y eliminar.

Veamos el escenario actual en la siguiente captura de pantalla:

LS

En el primer ejemplo, elija archivos por tipo, como se hace en la sección anterior, para eliminarlos, como se muestra a continuación:

encontrar . -nombre "*.C "| Xargs RM

Como puedes ver arriba, todos .C Los archivos se eliminaron correctamente.

Ahora, el escenario es el siguiente:

LS

En el ejemplo actual, usaré el comodín para eliminar todos los archivos cuyo nombre comienza con "archivo", Independientemente de la continuación del nombre.

encontrar . -Nombre "Archivo*" | Xargs RM

Hasta ahora, este artículo explicaba cómo lidiar con archivos. Ahora, veamos cómo usar Find y Xargs con directorios. En el nuevo escenario, hay cinco nuevos directorios: Dir1, dir2, Dir3, dir4, y Dir5, Como se muestra en la siguiente imagen:

LS

Suponiendo que desea eliminar todos los directorios con nombres que comienzan con "prostituta", Ejecute el mismo comando. Sin embargo, después del comando RM, agregue el -riñonal FLAG utilizado para tratar con directorios, como se muestra en la siguiente figura:

encontrar . -Nombre "Dir*" | xargs rm -r

Encontrar y eliminar archivos basados ​​en permisos

Esta sección describe encontrar archivos con permisos específicos y cambiarlos usando XARGS.

Como puede ver a continuación, archivos algo1.txt, algo2.TXT, y algo3.TXT tener permisos completos para todos (777).

LS -L

La sintaxis para encontrar archivos con permiso y cambiarlos se muestra a continuación:

encontrar -permanente | Xargs chmod

Para encontrar todos los archivos con permisos completos a todos (777) en el directorio actual y cambiarlos a permisos completos para el propietario y leer y ejecutar permisos para usuarios del grupo y otros (755), ejecute el comando ejecutado a continuación:

encontrar . -Perm 777 | Xargs Chmod 755

Conclusión

Como puede ver, el comando XARGS, cuando se combina con el comando finales, es útil para tareas masivas o tareas específicas cuando no conoce una ubicación de archivo. Ambos comandos son fáciles de implementar y pueden ser incorporados por nuevos usuarios para aliviar su experiencia con el terminal de Linux. Buscar y Xargs son comandos básicos de Linux Cualquier usuario de Linux debe saber cómo aplicar. XARGS se puede combinar con otros comandos básicos como LS. Las instrucciones explicadas anteriormente son útiles para todas las distribuciones de Linux.

Consulte más artículos para obtener más consejos y tutoriales de Linux.