Viele Datein löschen, der schnellste Weg

Hallo Leute,

hin und wieder muss man Ordner mit unzähligen Dateien löschen, in meinem aktuellen Fall hatte ich einen Ordner mit über 450.000 Dateien.

Zu Beginn hatte ich mir nicht viel dabei gedacht und machte wie gewohnt:

rm -f *

Das Problem kam nach ca. 13 Minuten:

-bash: /bin/rm: Argument list too long

rm konnte nicht so viele Dateien löschen, noch dazu war rm sehr langsam dabei. Am Ende waren noch mehr als die Hälfte der Datein vorhanden.

Ich beschloss also einen Test aufzustellen um zu schauen, mit welchem Befehl man 450.000 Dateien am schnellste löschen kann.

Ich erstelle also 450.000 kleine Dateien zum testen:

for i in $(seq 1 450000); do echo hello world >> $i.txt; done

danach probierte ich folgende Methoden:

  • rm (mit Fehler abgebrochen)
  • find ./ -type f -exec rm {} \; (ca. 12 Minuten)
  • find ./ -type f -delete (ca. 4 Minunten)
  • rsync -a –delete blankdir/ testdir/ (ca 3 Minuten)

Der schnellste Weg viele Dateien auf einmal zu löschen ist also rsync! Wer hätte das gedacht :)

Beim nächsten Mal verwendet also rsync wenn ihr viele Dateien entsorgen müsst.

peace
LEWIS

Leave a Reply

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