Re: [HS Debian] rm : liste d'arguments trop longue
Steve, samedi 24 mars 2007, 08:15:57 CET
>
> Bonjour,
’jour,
>[...]
> > Normal, la commande « ls 31* » met aussi les noms de
> > fichiers dans la ligne de commande. Mon exemple était « ls
> > », et, lui, il ne comporte que « ls » dans la ligne de
> > commande.
>
> Là je ne comprends pas très bien : « ls 31* » retourne
> moins de fichiers que juste « ls » non ? Mais après test,
> effectivement ça marche.
Le problème n’est pas avec ce qui est « retourné » mais avec
ce qui est donné.
Comme l’a expliqué Yves dans le compte rendu de sa recherche de
la limite perdue, la limite concerne la taille de la ligne de
commande une fois qu’elle est « globée » (les jokers remplacés).
Dans 'ls | xargs rm', la ligne de commande est « ls », alors que
dans 'ls 31*', c’est « ls 31bla1 31bla2 ... », qui déborde.
Ce que tu appelle « retourné » est ce qui est « affiché », plus
précisément ce que ls envoie dans son flux de sortie standard. La
taille du flux n’est pas limitée (/dev/zero est un flux infini).
Et c’est parce que la taille du flux n’est pas limitée que je
t’ai proposé d’utiliser un tube et xargs.
>[...]
> Question subsidiaire 2 : quelle est la longueur maximale d'un
> fichier ?
Je suppose que tu veux connaître la longueur maximale d’un _nom
de fichier. Tu peux trouver tout ça par là :
http://en.wikipedia.org/wiki/Comparison_of_file_systems
(d’ailleurs, si quelqu’un se sent motivé de traduire la page pour
compléter la version française...)
Ça va de 8 octets à 4032 octets (reiserfs, mais ça correspond à
255 caractères).
Pour la taille maximale d’un fichier, ça va de quelques kio à
l’infini (GPFS, pour les clusters).
> N'y a t-il pas une variable d'environnement s'y
> rapportant et qu'on peut modifier ?
Eh non.
--
Sylvain Sauvage
Reply to: