Enthält ein Verzeichnis mehrere Tausend Dateien, kann man sie nicht mehr so einfach mit dem Befehl rm löschen. Versucht man es dennnoch erhält man die Meldung:
- bash: /bin/rm: Argument list too long
Doch es gibt einen einfachen Trick um diesem Problem Herr zu werden.
Lösung für Argument list too long
Die Lösung zu dem Problem mit Argument list too long, ist das Programm xargs. Was ist xargs?
xargs - bildet Kommandozeilen aus der Standard-Eingabe und führt sie aus
Mit dem Programm xargs und find kann man nun alle Dateien eines Verzeichnises löschen. Der Befehl steht in Listing 1. Er baut sich folgendermaßen auf.
Mit dem Programm find suchen wir alle Dateien, das macht der Schalter -type f. Das Argument -print0 hängt jedem Dateinamen ein Nullbyte hintendran. Die Pipe | übergibt nun das Ergebnis an xargs. Der Schalter -0 bestimmt, dass jede Datei mit einem Nullbyte endet. Schliesslich wird das finale Löschkommando mit dem Befehl rm ausgeführt.
Listing 1
Download Code!
find -type f -print0 | xargs -0 rm