Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
17 octobre 2016

findutils           tests et conditions


xargs

xargs

Construire et exécuter des commandes depuis l'entrée standard

   xargs lit des éléments depuis l'entrée standard, délimité par des espaces blancs, et exécute la commande spécifié une ou plusieurs fois. La ligne de commande pour la commande est construite jusqu'à ce quelle atteigne une limite définie par le système (sauf si -n et -L sont utilisés). La commande spécifiée sera invoquée autant de fois que nécessaire pour utiliser la liste des éléments d'entrée.

OPTIONS

-0, --null Les éléments d'entrée sont terminés par un caractère null au lieu d'un espace blanc, et les ' et \ ne sont pas spéciaux
-a file, --arg-file=file Lis les éléments depuis le fichier au lieu de l'entrée standard.
eof-str Définis la chaîne EOF.
-e[eof-str], --eof[=eof-str] Idem à -E. -E est conforme POSIX alors que cette option ne l'est pas. Si eof-str est omis, il n'y a pas de chaîne EOF.
-I replace-str Remplace les occurences de replace-str dans les arguments initials avec les noms lus depuis l'entrée standard.
-L max-lines Utilise au moins max-lines lignes d'entrées non-blancs par ligne de commande.
max-args, --max-args=max-args Utilise au moins max-args arguments par ligne de commande.
-P max-procs, --max-procs=max-procs Lance jusqu'à max-procs processus à la fois. Défaut: 1. À 0, xargs lance autant de processus que possible à la fois.
-p, --interactive Demande à l'utilisateur s'il lance chaque ligne de commande et lit une ligne depuis le terminal. Implique -t
--process-slot-var=name Définis une variable d'environnement.
-r, --no-run-if-empty Si l'entrée standard ne contient rien de non blanc, ne lance pas la commande.
-s max-chars, --max-chars=max-chars Utilise au moins max-chars caractères par ligne de commande, incluant la commande est les arguments initiaux et la caractère null terminant la chaîne d'arguments.
--show-limits Affiche les limites de la longueur de la ligne de commande imposée par l'OS.
-t, --verbose Affiche la ligne de commande sur l'erreur standard avant de l'exécuter
-x, --exit Quitte si la taille (-s) est dépassée

Exemples

Trouve les fichiers nommés core dans /tmp et les supprime
find /tmp -name core -type f -print | xargs /bin/rm -f
Trouve les fichiers nommés core dans /tmp et les supprime, en gérant les espaces dans les noms de fichier
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
Trouve les fichiers nommés core dans /tmp et les supprime, mais plus efficacement que dans l'exemple précédent (on évite d'utiliser fork(2) et exec(2) pour lancer rm)
find /tmp -depth -name core -type f -delete
Génère un listing compacte de tous les utilisateurs dans le système
cut -d: -f1 ‹ /etc/passwd | sort | xargs echo
Lance le nombre de copies minimum d'Emacs nécessaire, une après l'autre, pour éditer les fichiers listés dans l'entrées xargs:
xargs sh -c 'emacs "$@" ‹ /dev/tty' emacs

Codes de sortie

0 succès
123 une des commandes invoquée s'est terminé par un code entre 1 et 125
124 La commande s'est terminée par un code 255
125 La commande a été tuée par un signal
126 La commande ne peut pas être lancée
127 Commande non trouvée
1 Une autre erreur s'est produite