focal (1) xargs.1.gz

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 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 -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 -c 'emacs "$@" < /dev/tty' emacs

       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é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://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)