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

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



Steve a écrit :
> 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
>   
le caractere * est remplacé par bash lui-meme donc quand tu fait ls 31*
bash execute reellement ls 31123 312334 31345 ...... c'est pour cela
qu'il t'envoi dans les choux donc quelque chose comme ls | grep ^31  |
xargs rm devrait fonctionner
>   
>> 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
>
>   
:)



Reply to: