Comment résoudre le `/bin/rm : Erreur trop longue de liste d'argument'

par Sukrit Dhandhania sur 18 février 2009

Linux

spam-* de rm de /var/spool/clientmqueue # de root@dwarf
/bin/rm : Liste d'argument trop longue.

Jamais sont vus cette erreur dans Linux quand vous avez trop de dossiers dans un annuaire et te les supprimer avec un simple rm - rf *? J'ai couru dans ce problème un certain nombre de fois. Après avoir fait un peu de recherche en ligne j'ai trouvé une solution ordonnée pour travailler autour de cette question.

trouvaille. - nom « spam-* » | rm de xargs

Dans l'exemple ci-dessus la commande supprimera avec force tous les dossiers dans l'annuaire courant par lesquels commencez Spam. Vous pouvez remplacer spam-* avec quelque chose vous aimez. Vous pouvez également le remplacer avec juste a * si vous voulez enlever tous les dossiers dans la chemise.

trouvaille. - nom « * » | rm de xargs

Nous avons couvert Trouvaille de Linux commande dans le grand détail plus tôt. Xargs est la commande de Linux qui facilite passant un certain nombre d'arguments à une commande.

Si ce poteau vous aidait, je serais extrêmement reconnaissant si vous pourriez prendre 3 minutes (je l'ai chronométré) pour accomplir cet aperçu. Si vous écrivez votre email address à la fin de l'aperçu, vous serez présenté dans un concours pour gagner un certificat-prime de $25 USD Amazone. Vous n'avez pas besoin d'écrire votre nom ou email address (bien que vous ne serez pas présenté dans le concours) pour accomplir l'aperçu. Aucune information personnellement identifiable n'est recueillie. Si vous choisissez d'écrire le concours, votre email address pas soyez vendu ou employé pour n'importe quel genre de communication, autre que pour vous informer si vous gagniez le concours. Après que le concours finisse toutes les adresses d'email seront supprimées. Merci beaucoup à l'avance ! !
Poteaux relatifs :
  • Technologie et style de vie
  • Caractéristiques du système de rétablissement de Windows XP
  • Comment résoudre l'erreur 800B0100 de mise à jour de Windows Vista
  • Comment surveiller votre machine de Linux avec le netstat
  • La vue d'ensemble et 10 de Pownce invite pour des lecteurs de Simplehelp
  • Obtenez les cours d'instruction simples d'aide justes comme celui-ci dans votre inbox d'email journalier - pour libre ! Écrivez juste votre email address ci-dessous :

    Vous pouvez toujours quitter cet abonnement d'email à tout moment.

    { 2 comments… read them below or add one }

    1 Ale? Friedl 02.19.09 at 7:16 am

    Safe variant for filenames with spaces, new lines and other whitespace characters:
    find . -name ‘*’ -print0 | xargs -o rm

    2 MikeT 02.19.09 at 6:30 pm

    Good catch using the print0 option, that’s an important one.

    Most find commands do not require the “-name” predicate. What’s usually more important is to make sure you’re deleting *files* and not something else you might not have intended. For this use “-type f” inplace of the “-name” option….

    find . -type f -print0 | xargs -0 /bin/rm

    A) Use the full path to the ‘rm’ command so your aliases don’t muck with things.
    B) Check your xargs command, you can sometimes, if needed, tell it to use one “result” at a time, such as (if you didn’t use print0 but regular print) “-l1″

    Leave a Comment

    You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>