Es gibt verschiedene Themen in stackoverflow bezüglich Suchen/Entfernen des ältesten Verzeichnisses/Dateien in einem Verzeichnis. Ich habe viele von ihnen gelesen und unzählige verschiedene Arten gesehen, die offensichtlich für einige Leute auf anderen Systemen funktionieren, aber nicht für mich in meinem speziellen Fall.Entfernen aller bis auf X ältesten Verzeichnisse auf FreeBSD via Bash (no -printf, mit Leerzeichen, keine zsh)
Die Einschränkungen sind:
- Im auf FreeBSD (Freenas 9.3)
- Verzeichnisse Leerzeichen in ihnen
- Dont verwenden ls (http://mywiki.wooledge.org/ParsingLs)
- nicht -printf von find (doesnt verwenden können, existieren für mich)
Die nächste, die ich bekommen habe, ist etwas wie das (nicht vollständig):
find . -maxdepth 1 -d -name "Backup Set*" -print0 | xargs -0 stat -f "%m %N" | sort -r| awk 'NR>5'
Das gibt mir die Verzeichnisse, die ich aber jetzt löschen wollen sie Zeitstempel vorangestellt haben, die ich bin nicht sicher, dass, wenn ich i zu einer Situation wird abzustreifen und Rohr rm zurück, wo ich Verzeichnisse nicht löschen mit Räumen in ihnen.
Ausgabe:
1450241540 ./Backup Set1
1450241538 ./Backup Set0
Vielen Dank für jede hier Hilfe.
relevante Beiträge, die ich ausgesehen haben:
https://superuser.com/questions/552600/how-can-i-find-the-oldest-file-in-a-directory-tree
Bash scripting: Deleting the oldest directory
Delete all but the most recent X files in bash
sein wird, funktioniert die 'stat 'Ausgabe ließ Sie zusätzliche dbl-Anführungszeichen setzen, dh' stat -f "% m \"% N \% "" '? Gutes Q, Viel Glück. – shellter