| |
Was passiert hier?
ls -t
listet alle Dateien im aktuellen Verzeichnis in absteigender Reihenfolge der Änderungszeit auf. Die zuletzt geänderten Dateien stehen zuerst, ein Dateiname pro Zeile.
sed -e '1,3d' löscht die ersten 3 Zeilen, also die 3 neuesten Dateien.
xargs -d '\n' -r rm liest die restlichen Zeilen, nimmt dabei \n als einziges Trennzeichen
(so überstehen Dateinamen mit Leerzeichen) und hängt sie als Argumente an einen – bei sehr
vielen Dateien auch mehrere – rm-Aufrufe an. -r verhindert, dass rm ohne Argumente
läuft, falls es 3 oder weniger Dateien gibt.
xargs -dist eine GNU-Erweiterung. Unter macOS/BSD stattdessenls -t | tail -n +4 | tr '\n' '\0' | xargs -0 rmverwenden.