Antworten:
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
/ 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:
print -rl -- *(.m+9)
Hinzufügen D
, um Punktedateien einzuschließen:
print -rl -- *(D.m+9)
oder wenn Sie wiederkehren möchten (und zB nur Dateien auflisten, die mit enden .log
):
setopt extendedglob
print -rl -- **/*.log(.m+9)
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 ):
autoload zargs
zargs ./**/*(.m+9) -- rm
-ls
anstatt-delete
sicher zu machen dies nicht löschen , was sie gehalten wollten. Ja, ich spreche aus Erfahrung hier.