Ich schreibe ein Backup-Programm und muss einen Bash-Befehl ausführen, um das älteste Verzeichnis in einem bestimmten Verzeichnis zu löschen.
Ich habe diesen Befehl gefunden, umdas älteste Verzeichnis drucken:
find -type f -printf '%T+ %p\n' | sort | head -n 1
Und dieser Befehl zum Löschen eines Verzeichnisses und seines gesamten Inhalts:
rm -rf [oldest directory name]
Wie kann ich diese beiden kombinieren, um den ältesten Ordner zu löschen?
Antwort1
Dies sollte mit jedem Pfad funktionieren (Danke an @StéphaneChazelas für diehead
Trick) und sollte POSIX-kompatibel sein (für bessere Lesbarkeit formatiert):
printf %q "$(
find . -type d -printf "%T+ %p\0" |
tr '\0\n' '\n\0' |
sort |
head -n 1 |
tr '\0\n' '\n\0' |
sed -e 's/^[^ ]\+ //')"
Um das Verzeichnis tatsächlich zu entfernen, ersetzen Sie es printf %q
durchrm -rf --