Comandos de Linux: xargs

Una guía rápida paraxargscomando, usado para pasar la salida de un comando y usarlo como argumento para otro comando

losxargsEl comando se usa en un shell de UNIX para convertir la entrada de una entrada estándar en argumentos a un comando.

En otras palabras, mediante el uso dexargsla salida de un comando se utiliza como entrada de otro comando.

Aquí está la sintaxis que usará:

command1 | xargs command2

Usamos una pipa|) para pasar la salida axargs. Eso se encargará de ejecutar elcommand2comando, usando la salida decommand1como su (s) argumento (s).

Hagamos un ejemplo sencillo. Quiere eliminar algunos archivos específicos de un directorio. Estos archivos se enumeran dentro de un archivo de texto.

Tenemos 3 archivos:file1,file2,file3.

Entodelete.txttenemos una lista de archivos que queremos eliminar, en este ejemplofile1yfile3:

Canalizaremos la salida decat todelete.txthaciarmcomando, a través dexargs.

De este modo:

cat todelete.txt | xargs rm

Ese es el resultado, los archivos que enumeramos ahora se eliminan:

La forma en que funciona es quexargscorrerárm2 veces, una por cada línea devuelta porcat.

Este es el uso más simple dexargs. Hay varias opciones que podemos utilizar.

Uno de los más útiles en mi opinión, sobre todo a la hora de empezar a aprender.xargs, es-p. El uso de esta opción haráxargsimprima un mensaje de confirmación con la acción que va a realizar:

los-nla opción te permite decirxargspara realizar una iteración a la vez, por lo que puede confirmarlos individualmente con-p. Aquí te contamosxargspara realizar una iteración a la vez con-n1:

los-ILa opción es otra muy utilizada. Le permite obtener la salida en un marcador de posición y luego puede hacer varias cosas.

Uno de ellos es ejecutar varios comandos:

command1 | xargs -I % /bin/bash -c 'command2 %; command3 %'

Puedes intercambiar el%símbolo que usé arriba con cualquier otra cosa, es una variable

losxargsEl comando funciona en Linux, macOS, WSL y en cualquier lugar donde tenga un entorno UNIX

Descarga mi gratisManual de comandos de Linux


Más tutoriales de cli: