table of contents
other languages
XARGS(1) | General Commands Manual | XARGS(1) |
NOM¶
xargs - Construire et exécuter des lignes de commandes à partir de l'entrée standardSYNOPSIS¶
xargs -0prtx] [-E chaîne-fin-de-fichier] [ -e[ chaîne-fin-de-fichier]] [--eof[=chaîne-fin-de-fichier]] [ --null] [-d délimiteur] [--delimiter délimiteur] [-I chaîne-remplacement] [-i[chaîne-remplacement]] [ --replace[=chaîne-remplacement]] [-l[nombre-max-lignes]] [ -L nombre-max-lignes] [--max-lines[=nombre-max-lignes]] [-n nombre-max-params] [ --max-args=nombre-max-params] [-s nombre-max-caractères] [--max-chars=nombre-max-caractères] [ -P nombre-max-procs] [ --max-procs=nombre-max-procs] [--interactive] [ --verbose] [--exit] [--no-run-if-empty] [ --arg-file=fichier] [ --show-limits] [ --version] [--help] [commande [ paramètres_initiaux]]DESCRIPTION¶
Cette page de manuel documente la version GNU de xargs. xargs lit des éléments délimités par des blancs (pouvant être protégés par des apostrophes, des guillemets ou un antislash) ou par des sauts de ligne depuis l'entrée standard, et exécute une ou plusieurs fois la commande ( /bin/echo par défaut) en utilisant les paramètres_initiaux suivis des paramètres lus depuis l'entrée standard. Les lignes blanches en entrée sont ignorées. Parce que les noms de fichiers Unix peuvent comporter des blancs et des caractères de saut de ligne, ce comportement par défaut pose souvent des problèmes ; les noms de fichiers qui comportent des blancs et/ou des caractères de saut de ligne sont traités de manière incorrecte par xargs. Dans ces situations, il est préférable d'utiliser l'option -0 qui permet d'éviter ce genre de problèmes. Lorsque l'on utilise cette option, il faut s'assurer que le programme qui produit l'entrée pour xargs utilise aussi un caractère nul comme séparateur. Si ce programme est GNU find par exemple, l'option -print0 le fera pour vous. Si l'appel de la commande se termine avec un code d'état 255, xargs s'arrêtera immédiatement sans lire davantage les paramètres d'entrée. Si cela se produit, un message d'erreur est émis vers la sortie d'erreur standard (stderr).OPTIONS¶
- --arg-file=fichier
- -a fichier
- Lire les données depuis fichier plutôt que
depuis l'entrée standard. Si vous utilisez cette option, stdin
restera inchangée lors de l'exécution de la commande. Sinon,
stdin est redirigée depuis /dev/null.
- --null
- -0
- Les noms des fichiers d'entrée sont terminés par
un caractère nul au lieu d'une espace blanche, et les apostrophes,
guillemets et antislashs n'ont pas de signification particulière
(chaque caractère est utilisé littéralement).
Désactive la chaîne de fin de fichier, qui est traitée
comme tout autre paramètre. Utile quand des arguments sont
susceptibles de contenir des espaces blanches, des marques de protection
ou des antislashs. L'option -print0 de GNU find produit une sortie
convenant à ce mode.
- --delimiter=délimiteur
- -d délimiteur
- Les éléments en entrée sont terminés
par le caractère indiqué. Les apostrophes, les antislashs n'ont
pas de signification particulière ; chaque caractère en
entrée est pris littéralement. Désactive la chaîne de
fin de fichier qui est traitée comme n'importe quel autre
paramètre. Ceci peut être utilisé lorsque l'entrée ne
consiste qu'en des éléments simplement séparés par un
caractère de saut de ligne, bien qu'il soit la plupart du temps
préférable de concevoir votre programme de façon à ce
qu'il utilise --null lorsque c'est possible. Le séparateur
indiqué peut être un caractère unique, un caractère de
déspécification de style C tel que \n, ou un code de
déspécification octal ou hexadécimal. Les codes de
déspécification octaux ou hexadécimaux sont
interprétés de la même manière qu'avec la commande
printf. Les caractères multi-octet ne sont pas
gérés.
- -E chaîne-fin-de-fichier
- Définir la chaîne de fin de fichier à chaîne-fin-de-fichier. Si la chaîne de fin de fichier se trouve dans une ligne d'entrée, le reste de l'entrée est ignoré. Si on n'utilise ni -E ni -e, on n'utilise aucune chaîne de fin de fichier.
- --eof[=chaîne-fin-de-fichier]
- -e[chaîne-fin-de-fichier]
- Cette option est un synonyme de l'option -E. Utiliser de préférence -E parce qu'elle est conforme à la norme POSIX alors que cette option ne l'est pas. Si chaîne-fin-de-fichier est omis, il n'existe pas de chaîne de fin de fichier. Si aucune des options -E et -e n'est utilisée, aucune chaîne de fin de fichier n'est utilisée.
- --help
- Afficher un résumé des options de xargs et quitter.
- -I chaîne-remplacement
- Remplacer les occurrences de chaîne-remplacement dans les paramètres initiaux par les noms lus sur l'entrée standard. Dans ce cas, les blancs non protégés ne sont pas considérés comme terminant les items en entrée. Implique -x et -L 1.
- --replace[=chaîne-remplacement]
- -i[chaîne-remplacement]
- Cette option est un synonyme de -Ireplace-str si chaîne-remplacement est indiquée et de -I{} sinon. Cette option est obsolète ; veuillez utiliser -I à la place.
- -L nombre_max_lignes
- Utiliser au plus nombre-max-lignes lignes non vides par ligne de commande. Des blancs en fin de ligne permettent à une ligne logique de se poursuivre sur la ligne suivante. Implique -x.
- --max-lines[=nombre_max_lignes]
- -l[nombre_max_lignes]
- Synonyme de l'option -L. À l'inverse de -L, le paramètre nombre-max-lignes est optionnel. Le paramètre nombre-max-lignes vaut 1 par défaut s'il n'est pas indiqué. L'option -l est obsolète depuis qu'il a été remplacé par -L dans la norme POSIX.
- --max-args=nombre-max-param
- -n nombre-max-param
- Utiliser au plus nombre-max-param paramètres par ligne de commande. Un nombre de paramètres inférieur à nombre-max-param sera utilisé si la taille (consultez l'option -s) est dépassée, à moins que l'option -x ne soit indiquée, auquel cas xargs se terminera.
- --interactive
- -p
- Demander à l'utilisateur s'il faut exécuter chaque ligne de commande et lire une ligne à partir du terminal. N'exécuter la commande que si la réponse commence par « y » ou « Y ». Implique -t.
- --no-run-if-empty
- -r
- Si l'entrée standard ne contient aucun caractère non blanc, ne pas exécuter la commande. Normalement, la commande est exécutée une fois même s'il n'y a pas d'entrée. Cette option est une extension GNU.
- --max-chars=nombre-max-caractères
- -s nombre-max-caractères
- Utiliser au plus nombre-max-caractères caractères par ligne de commande, ce qui inclut la commande et les paramètres initiaux, ainsi que les caractères nuls de terminaison des chaînes passées en paramètres. La valeur maximale autorisée dépend du système, et est calculée d'après la taille limite pour exec, moins la taille de l'environnement, moins 2048 octets pour les en-têtes. Si cette valeur dépasse 128 Kio, la valeur par défaut sera 128 Kio ; dans les autres cas, la valeur par défaut correspondra au maximum (1 Kio vaut 1024 octets).
- --verbose
- -t
- Afficher la ligne de commande sur la sortie d'erreur standard avant de l'exécuter.
- --version
- Afficher le numéro de version de xargs et quitter.
- --show-limits
- Afficher les limites de la longueur de la ligne de commande telle qu'imposée par le système d'exploitation, le choix dans xargs de la taille du tampon et l'option -s. Redirigez /dev/null dans l'entrée (en indiquant éventuellement --no-run-if-empty) si vous voulez qu' xargs ne fasse rien.
- --exit
- -x
- Se terminer si la taille (voyez l'option -s) est dépassée.
- --max-procs=nombre-max-procs
- -P nombre-max-procs
- Exécuter jusqu'à nombre-max-procs processus simultanément (1 par défaut). Si nombre-max-procs vaut 0, xargs exécutera simultanément autant de processus que possible. Utilisez l'option -n avec -P ; sinon, il est fort possible qu'un seul exec soit effectué.
EXEMPLES¶
find /tmp -name noyau -type f -print | xargs /bin/rm -fChercher les fichiers dont le nom est noyau dans le répertoire /tmp et ses sous-répertoires, et les effacer. Rappelez-vous que vous pouvez rencontrer des problèmes si des noms de fichiers comportent des retours à la ligne ou des espaces. find /tmp -name noyau -type f -print0 | xargs -0 /bin/rm -f
Chercher les fichiers qui s'appellent noyau dans le répertoire /tmp et ses sous-répertoires, puis les effacer, en veillant à ce que les noms de fichiers ou de répertoires qui contiennent des retours à la ligne ou des espaces soient correctement traités.
Rechercher les fichiers nommés noyau dans ou à l'intérieur du répertoire /tmp et les effacer, mais de façon plus efficace que dans l'exemple précédent (puisqu'on évite l'appel à fork(2) et exec(2) pour lancer rm, et que nous n'avons plus besoin du processus supplémentaire xargs).
cut -d: -f1 < /etc/passwd | sort | xargs echoCrée une liste compacte de tous les utilisateurs sur le système.
xargs sh -c 'emacs "$@" < /dev/tty' emacsLance le nombre minimum de copie d'Emacs nécessaire à l'édition successives des fichiers listés sur l'entrée standard de xargs. Cet exemple produit le même résultat que l'option -o de BSD, mais d'une manière plus flexible et portable.
VALEURS DE RETOUR¶
xargs se termine avec le code de retour suivant :0 s'il réussit 123 si une invocation de la commande s'est terminée avec une valeur de retour comprise entre 1 et 125 124 si la commande s'est terminée avec une valeur de retour de 255 125 si la commande a été tuée par un signal 126 si la commande ne peut être exécutée 127 si la commande n'a pas été trouvée 1 si une autre erreur s'est produite.Les codes de retour supérieurs à 128 sont utilisés par l'interpréteur de commandes pour indiquer une fin de programme due à un signal fatal.