Comando Xargs de Linux: ejecutar desde STDIN comandos con argumentos

xargs de Linux permite convertir una entrada estándar (STDIN) en comandos, que pueden usarse directamente. Aunque en Linux no es muy común usar xargs, puede facilitarte el trabajo en gran medida.

¿En qué consiste el comando xargs de Linux?

xargs (“argumentos extendidos”) es un comando de Linux apenas utilizado por muchos de sus usuarios. No obstante, resulta de gran utilidad, ya que ayuda a simplificar el trabajo y contribuye a proteger tu ordenador. Con xargs de Linux se conectan dos comandos entre sí: xargs analiza la salida de uno de los comandos y aplica los resultados en el segundo. Resulta especialmente útil si estás procesando un gran número de archivos y necesitas realizar ciertas tareas de forma repetitiva.

Dado que la mayoría de las distribuciones de Linux (como Debian o Ubuntu) incluyen xargs, no es necesario instalarlo.

¿Cómo funciona en Linux xargs?

xargs lee datos de la entrada estándar (esto es, STDIN) y los convierte en comandos. El comando o comandos en cuestión se pasan al segundo comando como parámetro o argumento y a continuación se ejecuta/n una o varias veces. Si se prescinde de un comando especial como parámetro, xargs utiliza automáticamente el comando Linux-echo.

¿Cuál es la sintaxis de xargs en Linux?

Si quieres usar el comando xargs en la terminal, utiliza la sintaxis:

$ Primer_Comando | xargs [Opciones] [Segundo_Comando]
bash

De esta forma el segundo comando se ejecuta con los argumentos del primero.

¿Cuáles son las opciones del comando xargs?

Hay numerosas opciones para Linux xargs. A continuación, las más importantes:

  • -0 o –null: con esta opción, cada carácter se toma literalmente y el carácter NULL separa los argumentos.
  • -a o –arg-file: con esta opción, los argumentos se leen de un archivo en vez de la entrada estándar.
  • -d o –delimiter: con esta opción, también cada carácter se toma literalmente. La separación la marca el carácter delimitador y no los espacios en blanco.
  • -p o –interactive: con esta opción, antes de cada ejecutar xargs, se pregunta si se debe proceder.

Ejemplo de xargs de Linux

La mejor forma de mostrar la funcionalidad del comando xargs es con algunos ejemplos.

$ find -name "*.txt" | xargs rm
bash

En este ejemplo, xargs se utliza con el comando de Linux find y el comando de Linux rm. Como resultado, todos los archivos con la extensión .txt se eliminan del sistema de archivos del ordenador.

$ find -name "*.txt" | xargs grep "Factura"
bash

En este ejemplo, xargs ayuda a encontrar todos los archivos que contienen la palabra “Factura”. Para ello, además de find se usa también el comando grep.