Existen ocasiones en el que el número de ficheros a tratar es demasiado grande y llena el buffer del bash destinado a la expansión de los comodines que realiza el BASH (rm -fr *
, por ejemplo, se transforma en rm fichero1 ficher2 fichero3 etc…
)
XARGS permite coger esa lista (proviniente de un ls
, por ejemplo) y ejecutar un comando determinado fichero a fichero en lugar de todos a la vez: $ ls | xargs rm -fr
$ echo 1 2 3 4 | xargs -n2
ls | xargs -I ARG echo antes ARG despues
. A veces se usa {}
$ ls | xargs -L4
xargs --arg-file=lista.txt --verbose cp -t dest
cp -t <destino>