xargs je Unix naredba, obično dostupna na svim *nix operacijskim sustavima kao naredba sustava. Služi za izgradnju naredbi tako što sve što dolazi na standardni ulaz (STDIN) ne prosljeđuje naredbi koja slijedi u komadu, nego xargs prosljeđuje ulaz redak po redak. Naredbe kao što su grep i awk mogu prihvatiti standardni ulaz kao parametar putem cijevi (pipe). Međutim, naredbe poput cp, printf-a i echo ne znaju čitati STDIN nego primaju parametre ili kao parametar napisan iza dotične naredbe (cp, echo itd.) ili preko xargs-a. Također, Linux jezgra prije inačice 2.6.23 nije mogla procesirati proizvoljno duge liste parametara,[1] pa je jedino rješenje u bashu ili nekoj drugoj Linux ljusci bila uporaba naredbe xargs.

Primjeri uredi

ls -al | grep '^-' | awk '{ print $1,$5,$9 }' | xargs printf "%s %8s %s\n"

Čemu služi gornji kôd pročitajte u članku AWK, bitno je to da naredbama echo ni printf nije moguće direktno proslijediti ono što želite ispisati, nego je potrebno uporabiti naredbu xargs.

$ echo {0..9} | xargs -n 2
0 1
2 3
4 5
6 7
8 9

echo {0..9} ispisat će "0 1 2 3 4 5 6 7 8 9", ako želite neki drugi oblik ispisa možete uporabiti for petlju, ali je u bashu elegantnije rješenje naredba xargs, koja može prosljeđivati parametre jedan po jedan, dva po dva odnosno proizvoljno zadani broj njih odjednom.

Izvori uredi

  1. www.gnu.org, "GNU Core Utilities Frequently Asked Questions", Recent News: The Linux kernel has removed the classic ARG_MAX limitation. See the changeset on git.kernel.org for the change. This was released with the linux-2.6.23 kernel., pristupljeno 12. kolovoza 2016.

Vanjske poveznice uredi

Nedovršeni članak Xargs koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima Wikipedije.