[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS Debian] rm : liste d'arguments trop longue



Le vendredi 23 mars 2007 18:28, Sylvain Sauvage a écrit :
> Steve, vendredi 23 mars 2007, 18:13:48 CET
>
> > Bonsoir,
>
> 'soir,
>
> > J'ai un répertoire contenant 10G de données réparties en petit
> > fichier (genre 50 ko, donc ça fait *beaucoup* de fichiers). Je
> > désire effacer tous les fichiers. Mais :
> >
> > $ rm *
> > bash: /bin/rm: Liste d'arguments trop longue
> >[...]
> > Enfin ! Donc le nombre d'arguments est au plus de 5982. Ce qui
> > me mène à me poser deux questions :
> >
> > 1- quelle est le nombre maximal ? comment le trouver ?
>
>   C'est plus la taille (en caractères) que le nombre.

donc, si je comprends bien, si j'ai par exemple 3 fichier de 5 caractères de 
long chacun, le * aurait 15 caractères (sans compter les espaces) et c'est 
cette longueur qui est limitée à quelque chose de plus petit que mon 5982 (vu 
que là c'est le nombre de fichiers, qui font eux au moins un caratère de 
long). (j'espère que c'est clair pour tout le monde...) 
 
>   Pour connaître cette limite, tu peux lire les sources de bash...

	Quelle bonne idée, je n'avais rien à faire ce soir ;-) Même pas une petite 
idée (en passant) ?

>
> > 2- comment m'en affranchir dans mon cas ?
>
>   Les tubes n'ont pas ce genre de limite :
>     ls | xargs rm

$ ls 31* | xargs rm
bash: /bin/ls: Liste d'arguments trop longue
rm: opérande manquante

> ou
>     find . -type f -print0 | xargs -0 rm
> si des espaces se cachent dans les noms de fichiers.

ça rm, on dirait ...


>
> > Merci pour vos réponses et bonne fin de semaine.
>
>   Itou.

Merci

-- 
steve



Reply to: