Provided by: manpages-fr-extra_20080921_all bug

NOM

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

SYNOPSIS

       xargs -0prtx]  [-E  chane-fin-de-fichier]  [-e[chane-fin-de-fichier]]
       [--eof[=chane-fin-de-fichier]]  [--null]  [-d dlimiteur] [--delimiter
       dlimiteur]    [-I    chane-remplacement]    [-i[chane-remplacement]]
       [--replace[=chane-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-caractres]     [--max-chars=nombre-max-caractres]      [-P
       nombre-max-procs]     [--max-procs=nombre-max-procs]    [--interactive]
       [--verbose]    [--exit]    [--no-run-if-empty]     [--arg-file=fichier]
       [--show-limits] [--version] [--help] [commande [paramtres_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 paramtres_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 -O
       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=dlimiteur
       -d dlimiteur
              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 chane-fin-de-fichier
              Définir la chaîne de fin de fichier à chane-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[=chane-fin-de-fichier]
       -e[chane-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 chane-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 chane-remplacement
              Remplacer  les  occurrences  de  chane-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[=chane-remplacement]
       -i[chane-remplacement]
              Cette    option    est   un   synonyme   de   -Ireplace-str   si
              chane-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-caractres
       -s nombre-max-caractres
              Utiliser  au  plus nombre-max-caractres 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  entê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 -f

       Chercher 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.

       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 -cemacs "$@" < /dev/ttyemacs

       Lance 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.

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 paramè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  portables.  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écuter
       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
       assuré 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://savannah.gnu.org/bugs/?group=findutils. Vous  pourrez  ainsi
       suivre  l’évolution  de  la  résolution  de  votre problè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)