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 > > :)
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

