Provided by: manpages-fr-extra_20151231_all bug

NOM

       xargs - Construire et exécuter des lignes de commandes à partir de l'entrée standard

SYNOPSIS

       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 de‐
       puis 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'er‐
       reur 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 op‐
              tion, stdin restera inchangée lors de l'exécution de la commande. Sinon, stdin est  redirigée  de‐
              puis /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 carac‐
              tè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 carac‐
              tè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 ca‐
              ractère unique, un caractère de déspécification de style C tel que \n, ou un code de  déspécifica‐
              tion 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{}  si‐
              non. 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  pa‐
              ramètre  nombre-max-lignes  vaut 1 par défaut s'il n'est pas indiqué. L'option -l est obsolète de‐
              puis 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.  Normale‐
              ment,  la commande est exécutée une fois même s'il n'y a pas d'entrée. Cette option est une exten‐
              sion 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 li‐
              mite 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'ex‐
              ploitation, 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 -f

       Chercher les fichiers dont le nom est noyau dans le répertoire /tmp et ses sous-répertoires, et les effa‐
       cer. Rappelez-vous que vous pouvez rencontrer des problèmes si des noms de fichiers  comportent  des  re‐
       tours à 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 ef‐
       facer, 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.

       find /tmp -depth -name noyau -type f -delete

       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 echo

       Crée une liste compacte de tous les utilisateurs sur le système.

       xargs sh -c 'emacs "$@" < /dev/tty' emacs

       Lance le nombre minimum de copie d'Emacs nécessaire à l'édition successives des fichiers listés sur l'en‐
       tré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.

CONFORMITÉ AUX STANDARDS

       Depuis la version 4.2.9 de GNU xargs, le comportement par défaut de xargs est de ne pas avoir de marqueur
       logique de fin de fichier. La norme POSIX (IEEE Std 1003.1, 2004 Edition) le permet.

       Les options -l et -i sont apparues dans la version de la norme POSIX de 1997,  mais  n'apparaissent  plus
       dans la version 2004 de la norme. Vous devriez donc utiliser respectivement -L et -I, à la place.

       Le  standard  POSIX  permet  des implémentations dans lesquels il existe une limite sur la taille des pa‐
       ramètres fournis aux fonctions exec. La limite basse de cette taille est de 4096 octets, en  incluant  la
       taille  de l'environnement. Les scripts ne doivent pas compter sur une taille supérieure afin d'être por‐
       tables. Toutefois, je ne connais aucune implémentation actuelle dans laquelle la limite est aussi  basse.
       L'option --show-limits peut vous permettre de connaître les limites actuelles de votre système.

VOIR AUSSI

       find(1),  locate(1),  locatedb(5), updatedb(1),fork(2), execvp(3),  Finding Files (en ligne dans Info, ou
       en version imprimée)

BOGUES

       L'option -L est incompatible avec l'option -I, mais elle ne le devrait peut-être pas.

       Il n'est pas possible d'utiliser xargs de manière sûre, car il y aura toujours  un  intervalle  de  temps
       entre  la  production  de la liste de fichiers en entrée et leur utilisation dans les commandes produites
       par xargs. Si d'autres utilisateurs ont accès au système, ils peuvent manipuler le  système  de  fichiers
       pendant  cet intervalle de temps de façon à forcer les actions des commandes lancées par xargs à s'exécu‐
       ter sur des fichiers non voulus. Pour une discussion plus détaillée sur ce sujet  et  d'autres  problèmes
       qui  y  sont  liés,  veuillez  consulter  le chapitre «\ Security Considerations\ » dans la documentation
       Texinfo de findutils. L'option -execdir de find peut souvent être utilisé comme alternative plus sûre.

       Lorsque vous utilisez l'option -I, chaque ligne lue depuis l'entrée est mise en tampon en  interne.  Ceci
       signifie  qu'il  y  a  une  limite maximum pour la longueur de la ligne que xargs peut accepter en entrée
       lorsqu'il est utilisé avec l'option -I. Pour contourner cette limitation, vous pouvez  utiliser  l'option
       -s  pour  augmenter la taille du tampon utilisé par xargs, et vous pouvez aussi utiliser un appel supplé‐
       mentaire à xargs afin de vous assurer qu'il n'y a pas de ligne trop longue. Par exemple :

       une_commande | xargs -s 50000 echo | xargs -I '{}' -s 100000 rm '{}'

       Ici, le premier appel à xargs n'a pas de limite de longueur pour la ligne d'entrée parce que l'option  -i
       n'est  pas utilisée. Le deuxième appel à xargs comporte une telle limitation, mais nous nous sommes assu‐
       rés qu'il ne lui serait jamais soumis une ligne plus longue que ce qu'il sait traiter. Ce n'est  pas  une
       solution  parfaite.  Il  vaudrait  mieux  que l'option -i n'impose pas de limite à la taille de la ligne,
       c'est pourquoi cette discussion apparaît dans la section BOGUES. Le problème ne se produit  pas  avec  la
       sortie de find(1) parce qu'il ne produit qu'un seul nom de fichier par ligne.

       La   meilleure   manière   de   signaler   un  bogue  est  d'utiliser  le  formulaire  sur  http://savan‐
       nah.gnu.org/bugs/?group=findutils. Vous pourrez ainsi suivre l'évolution de la résolution de  votre  pro‐
       blème.  Les autres commentaires concernant xargs(1) et le paquet findutils en général peuvent être envoyé
       à la liste de diffusion bug-findutils. Pour vous abonner à cette liste, veuillez envoyer  un  courriel  à
       bug-findutils-request@gnu.org.

TRADUCTION

       Cette page de manuel a été traduite par Frédéric Delanoy <delanoy_f AT yahoo DOT com> en 2002. La version
       présente dans Debian est dorénavant maintenue par Jean-Luc Coulon (f5ibh) <jean-luc DOT coulon AT wanadoo
       DOT  fr>  et  les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler
       toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.

                                                                                                        XARGS(1)