xargs

Nos permite procesar parámetros como un filtro dándonos opciones muy potentes como procesar cierto número de parámetros y/o lanzar diferentes procesos en paralelo.

  • --max-args=max-args o -n max-args: el número máximos de parámetros a utilizar.
  • --max-procs=max-procs o -P max-procs: número de procesos paralelos a ejecutar.

Proceso en paralelo

Podemos usar el parámetro -P para indicar cuantos procesos paralelos debe lanzar.

Por ejemplo vamos a contar palabras, letras y líneas de todos los ficheros de ayuda (man) con un solo proceso y con 20 procesos:

time find /usr/share/man/ | xargs -I ARG -P1 -n 1 wc -lmcw  ARG > /dev/null 2>&1

    real    0m7.672s
    user    0m0.188s
    sys     0m0.688s

    time find /usr/share/man/ | xargs -I ARG -P20 -n 1 wc -lmcw  ARG > /dev/null 2>&1

    real    0m2.853s
    user    0m0.076s
    sys     0m0.588s

Como vemos en el primer caso (un solo proceso) tarda 7,6 segundos y en el segundo caso (20 procesos) tarda 2.8 segundos.

Retro

Lugares

Redes

Sistemas

Varios