Xargs és una instrucció de la linia de comandes del GNU/Linux (i d'altres) que de vegades pot ser molt útil. Combinada amb una pipe (|) aprofita els arguments de la instrucció anterior. Per exemple
# ls ./* | xargs chmod +x
ls ens fa una llista els arxius d'aquest directori i en comptes de mostrar-los, amb la pipe i xargs passem aquesta llista a la instrucció
chmod.
Però què passa quan aquesta llista d'arguments son rutes a arxius amb espais? Doncs que amb això no n'hi ha prou.
Hi ha un tipus de sistema operatiu que son molt habituals aquest tipus de noms, amb espais i símbols estranys. Si s'accedeisx des d'un GNU/Linux (per exemple) i es volen esborrar tots els arxius
.avi (habituals en entorns corporatius ;) hauriem de fer una instrucció com aquesta:
# find * -name *.avi -print0 | xargs -0 rm
Ho he posat com a truc perquè moltes vegades no recordo la instrucció i així queda escrita.
Comentaris
I el mateix amb el find:
find * -name "*.avi" -print0 -exec rm {} ;
;)