Gibt es einen Befehl zum Löschen aller Dateien in einem Verzeichnis, die in N Tagen nicht geändert wurden ? Ich muss ein paar alte Protokolle bereinigen.
15
Dadurch werden alle Dateien gelöscht, die älter als 5 Tage sind. Sie können auch -name '*log'
einen maxdepth
in den Befehl find einfügen, um genauer zu sein.
find /some/dir -type f -mtime +5 -delete
-ls
anstatt-delete
sicher zu machen dies nicht löschen , was sie gehalten wollten. Ja, ich spreche aus Erfahrung hier./ some/dir/
version gemacht habe. :(Mit
zsh
und(.m+n)
glob - Qualifikation :.
wählt nur reguläre Dateien,m+n
wählt Dateien geändert mehr als n Tage vor;ZB die Dateien im aktuellen Verzeichnis auflisten, die vor mehr als 9 Tagen geändert wurden:
Hinzufügen
D
, um Punktedateien einzuschließen:oder wenn Sie wiederkehren möchten (und zB nur Dateien auflisten, die mit enden
.log
):Ersetzen Sie
print -rl
durch,rm
wenn Sie mit dem Ergebnis zufrieden sind.zargs
Wenn Sie viele Dateien haben, müssen Sie möglicherweise Folgendes verwenden (um zu lange Argumente zu vermeiden ):quelle