dwww Home | Manual pages | Find package

XARGS(1)                    General Commands Manual                   XARGS(1)

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

SYNOPSIS
       xargs [options] [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 apos-
       trophes, des guillemets ou une contre-oblique)  ou  par  des  sauts  de
       ligne  depuis  l'entrée  standard,  et exécute une ou plusieurs fois la
       commande (echo par défaut) en utilisant les paramètres_initiaux  suivis
       des paramètres lus depuis l'entrée standard. Les lignes blanches en en-
       trée sont ignorées.

       La ligne de commande pour commande est construite  jusqu'à  ce  qu'elle
       atteigne  une  limite définie par le système (sauf si les options -n et
       -L sont utilisées). La commande spécifiée est invoquée autant  de  fois
       que nécessaire pour épuiser la liste d'objets en entrée. En général, il
       y aura beaucoup moins d'invocations qu'il y a d'objets en entrée.  Cer-
       taines  commandes  peuvent, de façon utile, être aussi exécutées en pa-
       rallèle ; voir l'option -P.

       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 cette option est
       utilisée, il faut s'assurer que le programme qui produit l'entrée  pour
       xargs utilise aussi un octet NULL 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
       -0, --null
              Les  noms  des fichiers d'entrée sont terminés par un octet NULL
              au  lieu  d'un  espace,  et  les  apostrophes,   guillemets   et
              contre-obliques  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,
              des  marques  de  protection  ou  des  contre-obliques. L'option
              -print0 de GNU find produit une sortie convenant à ce mode.

       -a fichier, --arg-file=fichier
              Lire les données depuis fichier plutôt que depuis l'entrée stan-
              dard  (stdin).  Si vous utilisez cette option, stdin restera in-
              changée lors de l'exécution de la commande. Sinon, stdin est re-
              dirigée depuis /dev/null.

       --delimiter=délimiteur, -d délimiteur
              Les objets en entrée sont terminés par le caractère spécifié. Le
              délimiteur spécifié peut être un caractère simple, un  caractère
              d'échappement  dans le style de C tel que \n ou un code d'échap-
              pement en octal ou en hexadécimal, avec la  même  acception  que
              pour la commande printf. Les caractères multi-octets ne sont pas
              acceptés. Lors du traitement de l'entrée, les guillemets et  les
              contre-obliques  ne  sont pas des caractères spéciaux ; tous les
              caractères de l'entrée sont considérés  littéralement.  L'option
              -d  désactive  toute  chaîne  de  fin de fichier qui est traitée
              comme n'importe quel autre paramètre.  Cette  option  peut  être
              utilisée  quand l'entrée consiste simplement en des objets sépa-
              rés par des sauts de ligne, bien  qu'il  soit  presque  toujours
              meilleur  de  concevoir le programme pour qu'il utilise l'option
              --null lorsque c'est possible.

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

       -e[chaîne-fin-de-fichier], --eof[=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.

       -I chaîne-remplacement
              Remplacer les occurrences de chaîne-remplacement  dans  les  pa-
              ramè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. Le séparateur est le caractère de
              nouvelle ligne. Implique -x et -L 1.

       -i[chaîne-remplacement], --replace[=chaîne-remplacement]
              Cette  option  est  un  synonyme  de  -Ichaîne-remplacement   si
              chaîne-remplacement  est  indiquée  et  de  -I{}.  Si l’argument
              chaîne-remplacement est absent, le  résultat  est  le  même  que
              -I{}.  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 de
              se poursuivre logiquement sur la ligne suivante. Implique -x.

       -l [nombre_max_lignes], --max-lines[=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  obso-
              lète depuis qu'elle a été remplacée par -L dans la norme POSIX.

       -n nombre-max-param, --max-args=nombre-max-param
              Utiliser  au  plus nombre-max-param paramètres par ligne de com-
              mande. 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 ter-
              minera.

       -P nombre-max-procs, --max-procs=nombre-max-procs
              Exécuter  jusqu'à nombre-max-procs processus à la fois ; par dé-
              faut, c'est 1. Si le nombre-max-procs est 0, xargs  exécutera  à
              la  fois  autant de processus que possible. Utiliser l'option -n
              ou l'option -L avec -P ; autrement il y a un  risque  que  seule
              une  exécution  soit  réalisée. Pendant l'exécution de xargs, il
              est possible d'envoyer à son processus un  signal  SIGUSR1  pour
              augmenter le nombre des commandes à exécuter simultanément ou un
              signal SIGUSR2 pour diminuer ce nombre. Il  n'est  pas  possible
              d'augmenter  ce nombre au-delà de la limite définie par l'implé-
              mentation (qui est affichée  avec  l'option  --show-limits).  Il
              n'est  pas  possible de l'abaisser au-dessous de 1. xargs ne met
              jamais fin à ses commandes ; quand une diminution est  demandée,
              il  attend  seulement que plus d'une commande existante s'achève
              avant d'en lancer une autre.

              Veuillez noter qu'il revient aux processus appelés de gérer cor-
              rectement  les  accès  parallèles  aux ressources partagées. Par
              exemple, si plus d'un processus essaye d'afficher sur la  sortie
              standard, les sorties seront produites dans un ordre indéterminé
              (et vraisemblablement mélangées) à moins que les processus  col-
              laborent  d'une  certaine  manière  pour  éviter  ces problèmes.
              L'utilisation d'une sorte de schéma de verrouillage est une  ma-
              nière  de prévenir ces problèmes. En général, l'utilisation d'un
              schéma de verrouillage aidera à assurer  des  sorties  correctes
              mais  réduit les performances. Si vous ne voulez pas accepter la
              différence de performance, il suffit de prendre des dispositions
              pour que chaque processus produise un fichier de sortie distinct
              (ou autrement utilise des ressources distinctes).

       -o, --open-tty
              Rouvrir l'entrée standard en tant que /dev/tty dans le processus
              enfant  avant l'exécution de la commande. Cela est utile si vous
              souhaitez que xargs s'exécute dans une application interactive.

       -p, --interactive
              Demander à l'utilisateur s'il faut exécuter chaque ligne de com-
              mande et lire une ligne à partir du terminal. N'exécuter la com-
              mande que si  la  réponse  commence  par  « y »  ou  « Y ».  Im-
              plique -t.

       --process-slot-var=nom
              Définir la variable d'environnement nom à une valeur unique dans
              chaque processus enfant exécuté. Ces variables sont  réutilisées
              une  fois que les processus enfant sont terminés. Cela peut être
              utilisé par exemple dans un schéma de répartition de charge  ru-
              dimentaire.

       -r, --no-run-if-empty
              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 ex-
              tension GNU.

       -s nombre-max-caractères, --max-chars=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  exécution,  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 corres-
              pondra au maximum (1 Kio vaut 1024 octets). xargs s'adapte auto-
              matiquement aux contraintes les plus strictes.

       --show-limits
              Afficher  les  limites  de  la  longueur de la ligne de commande
              telles qu'imposées 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 que xargs ne fasse rien.

       -t, --verbose
              Afficher  la  ligne  de commande sur la sortie d'erreur standard
              avant de l'exécuter.

       -x, --exit
              Terminer si la taille (voir l'option -s) est dépassée.

       --help Afficher un résumé des options de xargs et quitter.

       --version
              Afficher le numéro de version de xargs et quitter.

       Les options --max-lines (-L, -l), --replace (-I, -i) et --max-args (-n)
       s'excluent  mutuellement. Si plusieurs d'entre elles sont spécifiées en
       même temps, alors xargs va généralement utiliser l'option spécifiée  en
       dernier  sur la ligne de commande, c'est-à-dire qu'il remettra l'option
       fautive (donnée précédemment) à sa valeur par défaut.  En  plus,  xargs
       émettra  un diagnostic d'avertissement vers la sortie d'erreur standard
       (stderr).  L’exception  à  cette  règle  est  que  la  valeur  spéciale
       nombre-max-param  de  1-n1 ») est ignorée après l'option --replace
       ainsi que ses alias -I et -i parce qu'ils ne devraient  pas  entrer  en
       conflit réellement.

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

       Chercher  les fichiers qui s'appellent noyau dans le répertoire /tmp et
       ses sous-répertoires, puis 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émen-
       taire xargs).

       cut -d: -f1 < /etc/passwd | sort | xargs echo

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

CODE 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 un code de  retour  de
                     255

              125    si la commande a été tuée par un signal

              126    si la commande ne peut pas ê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.

       L'option -o est une extension du standard POSIX pour une meilleure com-
       patibilité avec BSD.

       Le  standard POSIX permet des implémentations dans lesquelles il existe
       une limite sur la taille des paramètres fournis aux fonctions exec.  La
       limite  peut être aussi basse que 4096 octets, en incluant la taille de
       l'environnement. Les scripts ne doivent pas compter sur une taille  su-
       pé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 réelles de
       votre système.

BOGUES
       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 fi-
       chiers en entrée et leur utilisation dans les commandes  produites  par
       xargs. Si d'autres utilisateurs ont accès au système, ils peuvent mani-
       puler 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. Cela signifie qu'il y a une limite maximale
       pour la longueur de la ligne que xargs peut accepter  en  entrée  lors-
       qu'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émen-
       taire à 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 as-
       suré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.

SIGNALER DES BOGUES
       Aide  en  ligne de GNU coreutils : <https://www.gnu.org/software/findu-
       tils/#get-help>
       Signaler  toute  erreur  de   traduction   à   <https://translationpro-
       ject.org/team/fr.html>

       Signaler  toute autre erreur au moyen du système de suivi de bogues GNU
       Savannah :
              <https://savannah.gnu.org/bugs/?group=findutils>
       Les sujets généraux concernant le paquet GNU  findutils  sont  discutés
       sur la liste de diffusion bug-findutils :
              <https://lists.gnu.org/mailman/listinfo/bug-findutils>

COPYRIGHT
       Copyright  ©  1990-2022  Free Software Foundation, Inc. License GPLv3+:
       GNU GPL version 3 ou supérieure <https://gnu.org/licenses/gpl.html>.
       Ce programme est un logiciel libre. Vous pouvez le modifier et  le  re-
       distribuer.  Il  n'y  a AUCUNE GARANTIE dans la mesure autorisée par la
       loi.

VOIR AUSSI
       find(1), kill(1), locate(1),  updatedb(1),  fork(2),  execvp(3),  loca-
       tedb(5), signal(7)

       Documentation complète : <https://www.gnu.org/software/findutils/xargs>
       aussi disponible localement à l’aide de la commande : info xargs

TRADUCTION
       La traduction française de cette page de manuel a été créée par Floren-
       tin Duneau <fduneau@gmail.com>, Jean-Luc Coulon (f5ibh)  <jean-luc.cou-
       lon@wanadoo.fr>,  Sylvain  Cherrier <sylvain.cherrier@free.fr>, Nicolas
       François  <nicolas.francois@centraliens.net>  et   Jean-Pierre   Giraud
       <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la       GNU       General       Public        License        version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de  manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

                                                                      XARGS(1)

Generated by dwww version 1.15 on Sat Jun 29 01:33:10 CEST 2024.