(Courriels de diversion: <fourvoye@rameutant-blesses.com> <decapiteriez@etires-arraisonneras.com> <erectiles@allaite-arrivais.com> <blesserent@claudicantes-reexporterais.com> <syndic@bourguignons-affinement.com> <detachions@depiler-traîneraient.com> <serviabilite@scander-redirigees.com> <rapetisses@acquis-empêcherai.com> <proscrivant@triomphalement-entrechoquent.com> <eventrer@trouvaient-emettais.com> )
>>>>> "kr" == Kevin Rowanet <kevin.rowanet@wanadoo.fr> writes:
kr> et j'ai eu le message : « /bin/rm: liste d'arguments trop longue ».
kr>
kr> Questions :
kr> 1/ quelle est la limite et où est-elle définie ? (je suis sous bash, si
kr> la réponse dépend du shell)
<URL:http://www.culte.org/listes/linux-31/2001-05/msg00198.html>
Épatant ce qu'on retrouve dans les archives.
kr> 2/ Comment contourne-t-on élégamment la difficulté ? Moi j'ai fait une
kr> boucle sur la première des deux lettres, ne faisant donc porter * que
kr> sur la 2eme.
par exemple avec
% find repertoire prefixe-nom -exec rm {} \;
ou
% find repertoire prefixe-nom* -print0 | xargs -0 rm
la seconde solution ayant l'avantage de générer un plus petit nombre
de processus fils (chercher "xargs" sur le site du CULTe donnera
d'autres messages utiles, par exemple sur l'intérêt du -print0).
kr> Et dans un script, faut-il systématiquement tester la taille de la liste
kr> d'arguments avant de lancer une commande (ou intercepter l'erreur) ?
il n'est généralement pas possible de le tester, puisque la commande
qui permettrait de tester souffrirait du même problème. Il faut
penser à utiliser des solutions à base de xargs à chaque fois qu'une
commande pourrait comporter un grand nombre d'arguments.
--
Eric Marsden <URL:http://www.laas.fr/~emarsden/>
--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>