Wer schon einmal auf der Konsole versucht hat den Inhalt eines Ordners mit sehr vielen Dateien zu löschen, dem wird die Fehlermeldung bekannt vorkommen.

Auf der Konsole lässt sich der Inhalt eines Ordners in der Regel relativ simpel mittels folgenden Befehl löschen:

rm -rf /mein/ordner/*

Enthält der Ordner allerdings tausende von Dateien, bricht der Vorgang mit der Fehlermeldung Die Argumentliste ist zu lang bzw. im englischen Argument list too long ab.

Wer sich etwas in Bash-Scripting auskennt, sollte damit keinerlei Probleme haben. Für den Bash-Laien sei gesagt, dass zwei alternative Lösungsmöglichkeiten existieren, die beide zum selben Ziel führen.

for-Schleife

for i in /mein/ordner/*; do rm -rf $i; done

Hierbei wird in dem übergebenen Ordner über alle darin enthaltenen Dateien iteriert und jede Datei (bzw. Ordner) einzeln gelöscht.

xargs

find /mein/ordner/ -print0 | xargs -0 rm -rf

Für die entsprechende Erklärung verweise ich auf Mr. Foos Blogeintrag, in dem er es vor einiger Zeit ausführlich erklärt hat.

blogroll
tags