Wie kann ich das älteste Verzeichnis in einem Verzeichnis löschen?

Wie kann ich das älteste Verzeichnis in einem Verzeichnis löschen?

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 dieheadTrick) 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 %qdurchrm -rf --

verwandte Informationen