Man page - xargs(1)
Packages contains this manual
Available languages:
en fr pl ja ro zh_TW zh_CNManual
XARGS
NOMSYNOPSIS
DESCRIPTION
OPTIONS
EXEMPLES
CODE DE RETOUR
CONFORMITĂ AUX STANDARDS
HISTORIQUE
BOGUES
SIGNALER DES BOGUES
COPYRIGHT
VOIR AUSSI
TRADUCTION
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 apostrophes, 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 entrĂ©e sont ignorĂ©es.
La ligne de commande pour la 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. Cela conduira normalement Ă un gain de performances. Certaines commandes peuvent, de façon utile, ĂȘtre aussi exĂ©cutĂ©es en parallĂš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âerreur 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 standard (stdin). 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 .
--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âĂ©chappement en octal ou en hexadĂ©cimal, avec la mĂȘme acception que pour la commande printf . Les caractĂšres multioctets 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Ă©parĂ©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 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. 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 -I chaĂźne-remplacement si chaĂźne-remplacement est indiquĂ©e. Si lâargument chaĂźne-remplacement est absent, le rĂ©sultat est le mĂȘme que -I {}. Lâoption -i 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 obsolĂš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 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.
-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. xargs attend toujours quâun processus enfant termine avant de terminer lui-mĂȘme (mais, voir BOGUES).
Si vous nâutilisez pas lâoption -P , xargs ne pourra pas traiter les signaux SIGUSR1 et SIGUSR2, ce qui signifie quâils mettront fin au programme (Ă moins dâĂȘtre bloquĂ©s dans le processus parent avant le dĂ©marrage de xargs ).
Veuillez noter quâil revient aux processus appelĂ©s de gĂ©rer correctement 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 collaborent dâune certaine maniĂšre pour Ă©viter ces problĂšmes. Lâutilisation dâune sorte de schĂ©ma de verrouillage est une maniĂš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 exĂ©cute une application interactive.
-p , --interactive
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 .
--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 rudimentaire.
-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 extension 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 octets NULL 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 une 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 correspondra au maximum (1 Kio vaut 1024 octets). xargs sâadapte automatiquement 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 lâentrĂ©e Ă partir de /dev/null (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.
|
-- |
DĂ©limiter la liste dâoptions. Les derniers arguments, si prĂ©sents, sont traitĂ©s comme des opĂ©randes mĂȘme sâils commencent par - . Par exemple, xargs-- --help exĂ©cute la commande --help (trouvĂ©e dans PATH ) au lieu dâafficher le texte dâusage, et xargs -- --macommande exĂ©cute la commande --macommande au lieu de la rejeter comme option inconnue. |
||
|
--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 de nombre-max-param 1 (« -n 1 ») est ignorĂ©e aprĂšs lâoption --replace ainsi que ses alias -I et -i parce quâelle ne devrait 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Ă©mentaire 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, Edition 2004) 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 compatibilitĂ© 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 supĂ©rieure afin dâĂȘtre portables. Toutefois, je ne connais aucune implĂ©mentation dans laquelle la limite rĂ©elle est aussi basse. Lâoption --show-limits peut vous permettre de connaĂźtre les limites rĂ©elles de votre systĂšme.
Dans les versions de xargs jusquâĂ la version 4.9.0 incluse, SIGUSR1 et SIGUSR2 ne provoqueront pas la fin de xargs mĂȘme si lâoption -P nâa pas Ă©tĂ© utilisĂ©e.
HISTORIQUE
Le programme xargs a Ă©tĂ© inventĂ© par Herb Gellis aux Laboratoires Bell. Voir le manuel Texinfo pour findutils, Finding Files , pour plus dâinformations.
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 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Ă©e 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 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.
Dans les versions de xargs jusquâĂ la version 4.9.0 incluse, xargs -P finira alors que certains de ses enfants sont encore en activitĂ©, si lâun dâeux fini avec de code de retour 255.
SIGNALER DES BOGUES
Aide en ligne de
GNU coreutils :
<https://www.gnu.org/software/findutils/#get-help>
Signaler toute erreur de traduction Ă
<https://translationproject.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-2024 Free Software Foundation, Inc. Licence
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 redistribuer. 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), locatedb (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 Florentin Duneau <fduneau@gmail.com>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@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 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 .