.\" -*- coding: UTF-8 -*- .\" -*- nroff -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH XARGS 1 .SH NOM xargs \- Construire et exécuter des lignes de commandes à partir de l'entrée standard .SH SYNOPSIS \fBxargs\fP .nh [\fIoptions\fP] [\fIcommande\fP [\fIparamètres_initiaux\fP]] .hy .SH DESCRIPTION Cette page de manuel documente la version GNU de \fBxargs\fP. \fBxargs\fP 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 \fIcommande\fP (\fI/bin/echo\fP par défaut) en utilisant les \fIparamètres_initiaux\fP suivis des paramètres lus depuis l'entrée standard. Les lignes blanches en entrée sont ignorées. .P La ligne de commande pour \fIcommande\fP est construite jusqu'à ce qu'elle atteigne une limite définie par le système (sauf si les options \fB\-n\fP et \fB\-L\fP sont utilisées). La \fIcommande\fP 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. Certaines commandes peuvent, de façon utile, être aussi exécutées en parallèle\ ; voir l'option \fB\-P\fP. .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 \fBxargs\fP. Dans ces situations, il est préférable d'utiliser l'option \fB\-0\fP 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 \fBxargs\fP utilise aussi un octet NULL comme séparateur. Si ce programme est GNU \fBfind\fP par exemple, l'option \fB\-print0\fP le fera pour vous. .P Si l'appel de la commande se termine avec un code d'état 255, \fBxargs\fP 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). .SH OPTIONS .TP .PD \fB\-0, \-\-null\fP 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 \-\fBprint0\fP de GNU \fBfind\fP produit une sortie convenant à ce mode. .TP .PD \fB\-a \fP\fIfichier\fP, \fB\-\-arg\-file=\fP\fIfichier\fP Lire les données depuis \fIfichier\fP 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 \fI/dev/null\fP. .TP .PD \fB\-\-delimiter=\fP\fIdélimiteur\fP, \fB\-d\fP\fI délimiteur\fP 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 \fB\en\fP ou un code d'échappement en octal ou en hexadécimal, avec la même acception que pour la commande \fBprintf\fP. 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 \fB\-d\fP 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 \fB\-\-null\fP lorsque c'est possible. .TP \fB\-E\fP \fIchaîne\-fin\-de\-fichier\fP Définir la chaîne de fin de fichier à \fIchaîne\-fin\-de\-fichier\fP. 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 \fB\-E\fP ni \fB\-e\fP, on n'utilise aucune chaîne de fin de fichier. .TP .PD \fB\-e\fP[\fIchaîne\-fin\-de\-fichier\fP], \fB\-\-eof\fP[\fI=chaîne\-fin\-de\-fichier\fP] Cette option est un synonyme de l'option \fB\-E\fP. Utiliser de préférence \fB\-E\fP parce qu'elle est conforme à la norme POSIX alors que cette option ne l'est pas. Si \fIchaîne\-fin\-de\-fichier\fP est omis, il n'existe pas de chaîne de fin de fichier. Si aucune des options \fB\-E\fP et \fB\-e\fP n'est utilisée, aucune chaîne de fin de fichier n'est utilisée. .TP \fB\-I\fP \fIchaîne\-remplacement\fP Remplacer les occurrences de \fIchaîne\-remplacement\fP 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 \fB\-x\fP et \fB\-L\fP\ \fB1\fP. .TP .PD \fB\-i\fP[\fIchaîne\-remplacement\fP], \fB\-\-replace\fP[\fI=chaîne\-remplacement\fP] Cette option est un synonyme de \fB\-I\fP\fIchaîne\-remplacement\fP si \fIchaîne\-remplacement\fP est indiquée et de \fB\-I\fP{}. Si l’argument \fIchaîne\-remplacement\fP est absent, le résultat est le même que \fB\-I\fP{}. Cette option est obsolète\ ; veuillez utiliser \fB\-I\fP à la place. .TP \fB\-L\fP \fInombre_max_lignes\fP Utiliser au plus \fInombre\-max\-lignes\fP 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\ \fB\-x\fP. .TP .PD \fB\-l\fP [\fInombre_max_lignes\fP], \fB\-\-max\-lines\fP[=\fInombre_max_lignes\fP] Synonyme de l'option \fB\-L\fP. À l'inverse de \fB\-L\fP, le paramètre \fInombre\-max\-lignes\fP est optionnel. Le paramètre \fInombre\-max\-lignes\fP vaut \fB1\fP par défaut s'il n'est pas indiqué. L'option \fB\-l\fP est obsolète depuis qu'elle a été remplacée par \fB\-L\fP dans la norme POSIX. .TP .PD \fB\-n\fP \fInombre\-max\-param\fP, \fB\-\-max\-args\fP=\fInombre\-max\-param\fP Utiliser au plus \fInombre\-max\-param\fP paramètres par ligne de commande. Un nombre de paramètres inférieur à \fInombre\-max\-param\fP sera utilisé si la taille (consultez l'option \fB\-s\fP) est dépassée, à moins que l'option \fB\-x\fP ne soit indiquée, auquel cas \fBxargs\fP se terminera. .TP .PD \fB\-P\fP \fInombre\-max\-procs\fP, \fB\-\-max\-procs\fP=\fInombre\-max\-procs\fP Exécuter jusqu'à \fInombre\-max\-procs\fP processus à la fois\ ; par défaut, c'est \fB1\fP. Si le \fInombre\-max\-procs\fP est \fB0\fP, \fBxargs\fP exécutera à la fois autant de processus que possible. Utiliser l'option \fB\-n\fP ou l'option \fB\-L\fP avec \fB\-P\fP\ ; autrement il y a un risque que seule une exécution soit réalisée. Pendant l'exécution de \fBxargs\fP, 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 \fB\-\-show\-limits\fP). Il n'est pas possible de l'abaisser au\-dessous de \fB1\fP. \fBxargs\fP 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. \fBVeuillez noter\fP 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). .TP .PD \fB\-o\fP, \fB\-\-open\-tty\fP Rouvrir l'entrée standard en tant que \fI/dev/tty\fP dans le processus enfant avant l'exécution de la commande. Cela est utile si vous souhaitez que \fBxargs\fP s'exécute dans une application interactive. .TP .PD \fB\-p\fP, \fB\-\-interactive\fP 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\ \fB\-t\fP. .TP .PD \fB\-\-process\-slot\-var\fP=\fInom\fP Définir la variable d'environnement \fInom\fP à 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. .TP .PD \fB\-r\fP, \fB\-\-no\-run\-if\-empty\fP 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. .TP .PD \fB\-s\fP \fInombre\-max\-caractères\fP, \fB\-\-max\-chars\fP=\fInombre\-max\-caractères\fP Utiliser au plus \fInombre\-max\-caractères\fP 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 correspondra au maximum (1\ Kio vaut 1024\ octets). \fBxargs\fP s'adapte automatiquement aux contraintes les plus strictes. .TP \fB\-\-show\-limits\fP Afficher les limites de la longueur de la ligne de commande telles qu'imposées par le système d'exploitation, le choix dans \fBxargs\fP de la taille du tampon et l'option \fB\-s\fP. Redirigez \fI/dev/null\fP dans l'entrée (en indiquant éventuellement \fB\-\-no\-run\-if\-empty\fP) si vous voulez que \fBxargs\fP ne fasse rien. .TP \fB\-t\fP, \fB\-\-verbose\fP Afficher la ligne de commande sur la sortie d'erreur standard avant de l'exécuter. .TP .PD \fB\-x\fP, \fB\-\-exit\fP Terminer si la taille (voir l'option \fB\-s\fP) est dépassée. .TP \fB\-\-help\fP Afficher un résumé des options de \fBxargs\fP et quitter. .TP \fB\-\-version\fP Afficher le numéro de version de \fBxargs\fP et quitter. .SH EXEMPLES .nf \fBfind /tmp \-name noyau \-type f \-print | xargs /bin/rm \-f\fP .fi Chercher les fichiers dont le nom est \fBnoyau\fP dans le répertoire \fB/tmp\fP 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. .P \fBfind /tmp \-name noyau \-type f \-print0 | xargs \-0 /bin/rm \-f\fP .fi Chercher les fichiers qui s'appellent \fBnoyau\fP dans le répertoire \fB/tmp\fP 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. .P \fBfind /tmp \-depth \-name noyau \-type f \-delete\fP .fi Chercher les fichiers qui s'appellent \fBnoyau\fP dans le répertoire \fB/tmp\fP 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 à \fBfork\fP(2) et \fBexec\fP(2) pour lancer \fBrm\fP, et que nous n'avons plus besoin du processus supplémentaire \fBxargs\fP). .P .nf \fBcut \-d: \-f1 < /etc/passwd | sort | xargs echo\fP .fi Créer une liste compacte de tous les utilisateurs sur le système. .SH "CODE DE RETOUR" \fBxargs\fP se termine avec le code de retour suivant\ : .nf 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 pas être exécutée 127 si la commande n'a pas été trouvée 1 si une autre erreur s'est produite. .fi .P 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. .SH "CONFORMITÉ AUX STANDARDS" Depuis la version\ 4.2.9 de GNU xargs, le comportement par défaut de \fBxargs\fP est de ne pas avoir de marqueur logique de fin de fichier. La norme POSIX (IEEE Std 1003.1, 2004 Edition) le permet. .P Les options \fB\-l\fP et \fB\-i\fP 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 \fB\-L\fP et \fB\-I\fP, à la place. .P L'option \fB\-o\fP est une extension du standard POSIX pour une meilleure compatibilité avec BSD. .P Le standard POSIX permet des implémentations dans lesquelles il existe une limite sur la taille des paramètres fournis aux fonctions \fBexec\fP. 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 actuelle dans laquelle la limite est aussi basse. L'option \fB\-\-show\-limits\fP peut vous permettre de connaître les limites réelles de votre système. .SH "VOIR AUSSI" \fBfind\fP(1), \fBlocate\fP(1), \fBlocatedb\fP(5), \fBupdatedb\fP(1),\fBfork\fP(2), \fBexecvp\fP(3), \fBkill\fP(1), \fBsignal\fP(7). La documentation complète de \fBxargs\fP est disponible dans un manuel Texinfo. Si les programmes \fBinfo\fP et \fBxargs\fP sont correctement installés, la commande \fBinfo\ xargs\fP devrait vous donner accès au manuel complet. .SH COPYRIGHT Copyright \(co 1990\-2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 ou supérieure . .br 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. .SH BOGUES L'option \fB\-L\fP est incompatible avec l'option \fB\-I\fP, mais elle ne le devrait peut\-être pas. .P Il n'est pas possible d'utiliser \fBxargs\fP 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 \fBxargs\fP. 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 \fBxargs\fP à 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 \fB\-execdir\fP de \fBfind\fP peut souvent être utilisé comme alternative plus sûre. Lorsque vous utilisez l'option \fB\-I\fP, 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 \fBxargs\fP peut accepter en entrée lorsqu'il est utilisé avec l'option \fB\-I\fP. Pour contourner cette limitation, vous pouvez utiliser l'option \fB\-s\fP pour augmenter la taille du tampon utilisé par \fBxargs\fP, et vous pouvez aussi utiliser un appel supplémentaire à \fBxargs\fP afin de vous assurer qu'il n'y a pas de ligne trop longue. Par exemple\ : .P \fBune_commande | xargs \-s 50000 echo | xargs \-I '{}' \-s 100000 rm '{}'\fP .P Ici, le premier appel à \fBxargs\fP n'a pas de limite de longueur pour la ligne d'entrée parce que l'option \fB\-i\fP n'est pas utilisée. Le deuxième appel à \fBxargs\fP 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 \fB\-i\fP 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 \fBfind\fP(1) parce qu'il ne produit qu'un seul nom de fichier par ligne. .P La meilleure manière de signaler un bogue est d'utiliser le formulaire sur https://savannah.gnu.org/bugs/?group=findutils. Vous pourrez ainsi suivre l'évolution de la résolution de votre problème. Les autres commentaires concernant \fBxargs\fP(1) et le paquet findutils en général peuvent être envoyés à la liste de diffusion \fIbug\-findutils\fP. Pour vous abonner à cette liste, veuillez envoyer un courriel à \fIbug\-findutils\-request@gnu.org\fP. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Florentin Duneau , Jean-Luc Coulon (f5ibh) , Sylvain Cherrier , Nicolas François et Jean-Pierre Giraud . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE 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 à .MT debian-l10n-french@lists.debian.org .ME .