Wir haben ein Problem mit einem Ordner, der mit Hunderttausenden kleiner Dateien unhandlich wird.
Es gibt so viele Dateien, die rm -rf
ausführen gibt einen Fehler zurück und stattdessen müssen wir etwas tun wie:
find /path/to/folder -name "filenamestart*" -type f -exec rm -f {} ;
Dies funktioniert, ist aber sehr langsam und schlägt ständig fehl, weil der Speicher knapp wird.
Gibt es einen besseren Weg, dies zu tun? Idealerweise möchte ich das gesamte Verzeichnis entfernen, ohne mich um den Inhalt darin zu kümmern.
Akzeptierte Antwort:
Die Verwendung von rsync ist überraschend schnell und einfach.
mkdir empty_dir
rsync -a --delete empty_dir/ yourdirectory/
@saraths Antwort erwähnte eine weitere schnelle Wahl:Perl! Seine Benchmarks sind schneller als rsync -a --delete
.
cd yourdirectory
perl -e 'for(<*>){((stat)[9]<(unlink))}'
Quellen:
- https://stackoverflow.com/questions/1795370/unix-fast-remove-directory-for-cleaning-up-daily-builds
- http://www.slashroot.in/was-ist-die-schnellste-methode-um-dateien-unter-linux-zu-löschen