GNU/Linux >> Tutoriales Linux >  >> Linux

Ejemplos de comandos xargs de Linux

El comando xargs en Linux/UNIX lee elementos de la entrada estándar, delimitados por espacios en blanco o saltos de línea, y ejecuta el comando una o más veces con cualquier argumento inicial.

Si no se proporciona ningún comando como argumento para xargs, el comando predeterminado que ejecuta la herramienta es un eco.

Las líneas en blanco en la entrada estándar se ignoran. Los elementos que esos xargs leen de la entrada estándar se pueden proteger con comillas simples o dobles o una barra invertida.

El comando xargs es extremadamente poderoso, especialmente cuando se combina con comandos como grep o echo. En este tutorial, cubriremos algunos usos básicos del comando xargs para que pueda comenzar a usarlo.

Sintaxis del comando Linux xargs

La sintaxis del comando xargs es:


xargs [options] [command [initial-arguments]]

Puede ver todas las opciones y argumentos invocando el comando man xargs de la terminal La siguiente sección enumera algunos ejemplos del comando args.

Ejemplo simple de xargs de Linux

El comando xargs sin ningún comando repite los argumentos en la entrada estándar. En el siguiente ejemplo, la salida del comando ls se canaliza al comando xargs y el comando xargs sin ningún comando repite la lista de archivos en la entrada estándar.


# ls | xargs

Xargs Ejemplo 1.a

El siguiente ejemplo muestra cómo la salida del comando echo se canaliza a xargs y el comando xargs usa el argumento canalizado para crear carpetas usando mkdir .


# echo 'one two three' | xargs mkdir

Xargs Ejemplo 1.b

Número límite de argumentos

El número de argumentos pasados ​​a xargs está definido por el límite de su sistema. El -n switch limita el número de argumentos que se pasan a un comando dado. El comando xargs se ejecutará continuamente con n número de argumentos hasta que se agoten todos los argumentos.

El siguiente ejemplo limita el número de argumentos leídos desde la entrada estándar a 2. El comando Xargs seguirá leyendo dos argumentos a la vez hasta que termine de leerlos todos. Además, el -t La opción imprimirá el comando en la salida estándar antes de ejecutarlo.


# echo "file1 file2 file3 file4 file5" | xargs -n 2 -t touch

Xargs Ejemplo 2

Habilitar solicitud de usuario antes de la ejecución

Los xargs con -p La opción le preguntará al usuario antes de ejecutar el comando. El siguiente ejemplo muestra que el comando xargs le solicita al usuario "Y" o "N" antes de continuar con la creación de carpetas con cada argumento.


# echo Hello World | xargs -p mkdir
# echo one two three | xargs -p -n 1 mkdir

Xargs Ejemplo 3

Eliminar archivos con el comando find y xargs

Uno de los usos más comunes de xargs es usarlo con el comando de búsqueda. Considere una situación en la que desea eliminar o cambiar el nombre de un montón de archivos después de ejecutar el comando de búsqueda. Aquí, tanto el comando find como xargs se pueden usar juntos en archivos que coinciden con ciertos atributos y luego eliminarlos o cambiarles el nombre de una sola vez.

Por ejemplo, suponga que desea eliminar todos los archivos en el /tmp carpeta que se crearon en los últimos cinco minutos. Para hacer eso usando xargs, primero, encuentre todos los archivos que coinciden con los criterios elegidos usando find comando y luego canalice la salida al comando xargs que a su vez usará rm comando para eliminarlos.


# find /tmp/* -cmin -5 
# find /tmp/* -cmin -5 | xargs -t rm
# find /tmp/* -cmin -5 

Xargs Ejemplo 4

Buscar patrón usando xargs

Otro uso poderoso del comando Xargs es buscar un patrón en una lista de archivos devueltos por otro comando de Unix como ls o find . El siguiente ejemplo combina find y xargs comando en el que el comando de búsqueda devuelve todos los archivos de texto (.txt) del directorio de trabajo actual. El resultado, es decir, los nombres de archivo se canalizan al comando xargs donde buscamos la palabra 'archivo' usando grep "file" . Si el patrón está presente en los archivos, las líneas que contienen el patrón se imprimirán en el terminal junto con el nombre del archivo:


# find . -name "*.txt" | xargs grep "file"

Xargs Ejemplo 5

Ejecutar múltiples comandos con xargs

Hasta ahora hemos visto cómo el comando xargs utiliza argumentos canalizados para realizar varias tareas, como cambiar el nombre de un lote de archivos, buscar un patrón, etc. Mientras hace esto, usa un solo comando después de la operación canalizada. También es posible ejecutar múltiples comandos junto con xargs.

Por ejemplo, si desea crear varios archivos y enumerarlos al mismo tiempo con el comando xargs, ejecute el comando xargs con -I switch seguido de la definición de una cadena de reemplazo. Todas las apariciones de la cadena de reemplazo se reemplazan con el argumento pasado a xargs.


# echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

Xargs Ejemplo 6

Ejecución de comandos en paralelo

En alguna situación, podría estar usando xargs para invocar un comando de cómputo intensivo para cada argumento. Al aprovechar su máquina multinúcleo, es posible invocar el comando en paralelo. El -P switch hace exactamente esto definiendo el número máximo de procesos. De forma predeterminada, el número máximo de procesos es 1.

Por ejemplo, el siguiente comando xargs imprime el número del 1 al 30 tomando 5 argumentos a la vez y, en particular, ejecuta hasta 8 procesos a la vez.


# printf %s\\n {1..30} | xargs -n 5 -P 8

Xargs Ejemplo 7

Aceptar entrada de un archivo

Hasta ahora, hemos visto que las entradas para el comando xargs se leen desde la entrada estándar o desde la salida de otros comandos a través de la operación de tubería. Sin embargo, también es posible que el comando xargs lea la entrada de un archivo directamente. El -a switch le permite definir un archivo para las entradas que necesita xargs.

El siguiente comando xargs lee la entrada de un archivo (input.txt) y luego crea archivos usando el comando táctil.


# cat input.txt
one.txt
two.txt
# xargs -a input.txt touch

Xargs Ejemplo 8

Resumen

¡Eso es todo! Aunque hemos cubierto algunos usos básicos del comando XARGS, ahora puede probar funciones más avanzadas de XARGS para crear un comando poderoso. Espero que te haya gustado el post y gracias por leerlo.


Linux
  1. 11 ejemplos de comandos Xargs en Linux

  2. 7 ejemplos de comandos Linux df

  3. 8 ejemplos de comandos TR de Linux

  4. 10 ejemplos de comandos Xargs en Linux / UNIX

  5. Ejemplos de comandos sa en Linux

10 ejemplos de comandos iftop en Linux

16 ejemplos de comandos de eco en Linux

9 ejemplos de comandos tee en Linux

9 ejemplos de comandos diff en Linux

Comando Xargs en Linux

Ejemplos de comandos id en Linux