XARGS
Section: User Commands (1)Index Return to Main Contents
NOM
xargs - Construire et exécuter des lignes de commandes à partir de l'entrée standardSYNOPSIS
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] [--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 arguments 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 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
- --arg-file=fichier, -a fichier
-
Les 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.
- -Echaî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 « -E » en remplacement 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. Implique -x et -L1.
- --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-param 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 commandes. Moins de nombre-max-param paramètres seront utilisés si la taille (voyez 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 commandes 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 commandes, 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 par défaut est de 131072 caractères sans compter la taille des variables d'environnement (qui sont transmises séparément, ce qui fait qu'il n'y a pas de problème si vos variables d'environnement prennent plus que 131072 octets). Le système d'exploitation impose des limites sur les valeurs que vous pouvez indiquer utilement, et si vous les dépassez, un message d'avertissement sera affiché et la valeur réellement utilisée sera positionnée à la limite inférieure ou supérieure appropriée.
- --verbose, -t
- Afficher la ligne de commandes 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 possible qu'un seul exec soit effectué.
EXEMPLES
find /tmp -name noyau -type f -print | xargs /bin/rm -fChercher 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 des espaces soient correctement traités.
cut -d: -f1 < /etc/passwd | sort | xargs echoCrée une liste compacte de tous les utilisateurs sur le système.
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.
VOIR AUSSI
find(1), locate(1), locatedb(5), updatedb(1), 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 de manière 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 idéale. 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 seule 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.
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- EXEMPLES
- VALEURS DE RETOUR
- CONFORMITÉ AUX STANDARDS
- VOIR AUSSI
- BOGUES
- TRADUCTION
This document was created by man2html, using the manual pages.
Time: 22:15:55 GMT, February 02, 2008