Beim Versuch eine grosse Anzahl kleiner Dateien unter Linux mittels rm zu löschen, kann es möglicherweise zu folgendem Fehler kommen
Argument list is too long
Eine Möglichkeit dies zu umgehen ist die Nutzung von find. Folgender Befehl kann dabei im betreffenden Verzeichnis ausgeführt werden und löscht alle Dateien und Ordner rekursiv:
find . -type f -delete
Mithilfe des print Parameters werden die entsprechenden Dateien ausgegeben:
find . -type f -print -delete
Möchte man nun nur bestimmte Dateien löschen, beispielsweise alle, welche mit a beginnen, kann folgender Befehl genutzt werden:
find . -name 'a*' -type f -print -delete
Noch effektiver geht es durch die Nutzung von rsync:
Dazu wird zunächst ein leeres Zielverzeichnis erstellt. Der Aufruf erfolgt danach wie folgt:
mkdir leeres_verzeichnis
rsync -a --delete leeres_verzeichnis/ zu_löschende_daten/
Gibt es eigentlich auch einen Papierkorb im Terminal?
Das ist meines Wissens nur mit einem zusätzlichem Programm wie z.B. trash-cli möglich, welches du dann aber auch mit seinen Kommandos für die Löschvorgänge nutzen musst.
Danke für diese hilfreichen Alltags Tips. Ich finde die Bandbreite eurer Beiträge immer sehr gut. Also praktische Linux Tipps, Distro-Infos, Gesellschaftliches, Meinungen, Podcasts, Veranstaltungen, etc. Weiter so!😎
Ich muss oft nach Datum löschen und mache es z.B. so:
ls -lA | grep -F "10. Jun 2020" | awk '{print $9}' | xargs -t -i rm {}