Accueil·Commandes du terminal

xargs

Traitement de texte

Syntaxe

[cmd] | xargs [cmd2]

Transforme les lignes reçues en arguments d'une autre commande ; les noms contenant des espaces cassent tout, sauf si les deux côtés utilisent NUL, soit find -print0 avec xargs -0.

Options courantes

OptionSignification
-nHow many arguments to hand over per run
-IPut the argument where a placeholder such as {} sits
-0Read NUL-separated input, to pair with find -print0
-PRun that many copies at once
-rDo not run the command at all on empty input
-tPrint each command before running it

Exemples

find . -name '*.log' -print0 | xargs -0 rm

Deletes them even when names hold spaces.

xargs -n1 -P4 curl -O < urls.txt

Four downloads at a time.

ls *.txt | xargs -I{} mv {} old/{}

Uses {} where the file name goes.

Ils sont faits pour être chaînés avec des tubes. Trois commandes reliées sont souvent plus courtes qu’une seule qui fait tout.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait xargs ?

Transforme les lignes reçues en arguments d'une autre commande ; les noms contenant des espaces cassent tout, sauf si les deux côtés utilisent NUL, soit find -print0 avec xargs -0.

Q. Comment l’écrire ?

[cmd] | xargs [cmd2] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 6 ici ; la liste complète est dans man xargs. Cette commande relève de Traitement de texte.

Commandes liées

page man: man xargs