Wie man das `/bin/rm behebt: Argumentliste zu lange' Störung

durch Sukrit Dhandhania auf 18. Februar 2009

Linux

root@dwarf /var/spool/clientmqueue # rm spam-*
/bin/rm: Argumentliste zu lang.

Gesehen überhaupt dieser Störung in Linux, wenn Sie zu viele Akten in einem Verzeichnis haben und Ihnen nicht imstande, sie mit einem einfachem zu löschen rm - Rf *? Ich habe in dieses Problem eine Anzahl von Zeiten laufen gelassen. Nachdem ich ein wenig Forschung online getan hatte, stieß ich auf eine ordentliche Lösung zufällig, um um diese Ausgabe zu arbeiten.

Entdeckung. - Name „spam-*“ | xargs rm

Im oben genannten Fall löscht der Befehl stark alle Akten im aktuellen Verzeichnis, denen mit anfangen Sie Spam. Sie können ersetzen spam-* mit allem mögen Sie. Sie können es mit gerade a auch ersetzen * wenn Sie alle Akten im Heft entfernen möchten.

Entdeckung. - Name „*“ | xargs rm

Wir haben bedeckt Linux Entdeckung Befehl ausführlich großes früh. Xargs ist Linux Befehl, der bildet, eine Anzahl von Argumenten zu einem Befehl führend einfacher.

Wenn dieser Pfosten Ihnen half, würde ich sein extrem dankbar, wenn Sie 3 Minuten dauern konnten (ich setzte Zeit) fest um durchzuführen diese übersicht. Wenn Sie Ihr email address am Ende der übersicht eintragen, werden Sie in einen Wettbewerb angemeldet, um eine $25 USD Amazonas zu gewinnen das Geschenk-Bescheinigung. Sie brauchen nicht, Ihren Namen oder email address einzutragen (obwohl Sie nicht in den Wettbewerb angemeldet werden), um die übersicht durchzuführen. Keine persönlich identifizierbaren Informationen werden erfaßt. Wenn Sie entscheiden, den Wettbewerb einzutragen, wird Ihr email address nicht seien für irgendeine Art Kommunikation, anders als, Sie mitzuteilen verkauft Sie oder verwendet, wenn Sie den Wettbewerb gewannen. Nachdem der Wettbewerb beendet, werden alle email Adressen gelöscht. Dank sehr viel im voraus!!
In Verbindung stehende Pfosten:
  • Technologie und Lebensstil
  • Windows XP Wiederaufnahme System Eigenschaften
  • Wie man Windows Vista Updatestörung 800B0100 behebt
  • Wie man Ihre Linux Maschine mit netstat überwacht
  • Pownce überblick und 10 lädt für Simplehelp Leser ein
  • Erhalten Sie einfache Hilfe Tutorials gerecht wie dieses in Ihrem täglichen email inbox - für freies! Tragen Sie einfach Ihr email address unten ein:

    Sie können aus dieser email Subskription heraus immer jederzeit entscheiden.

    { 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>