-mtime
ist ein Standardprädikat von find
(im Gegensatz zu -delete
), aber es sieht so aus, als hätten Sie eine abgespeckte Version von busybox
, wobei die FEATURE_FIND_MTIME
Funktion wurde zur Build-Zeit deaktiviert.
Wenn Sie busybox mit aktivierter Funktion neu erstellen können, sollten Sie in der Lage sein:
find . -mtime +6 -type f -exec rm -f {} +
Oder wenn FEATURE_FIND_DELETE
ist ebenfalls aktiviert:
find . -mtime +6 -type f -delete
Wenn nicht, könnten andere Optionen darin bestehen, find -newer
zu verwenden (vorausgesetzt FEATURE_FIND_NEWER
aktiviert ist) für eine Datei, die auf eine eine Woche alte Änderungszeit eingestellt ist.
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -newer ../ref -exec rm -f {} +
Oder wenn -newer
ist nicht verfügbar, aber sh
ist [
unterstützt -nt
:
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -exec sh -c '
for f do
[ "$f" -nt ../ref ] || printf "%s\0" "$f"
done' sh {} + |
xargs -0 rm -f
Ab man find
:
-Zeit n
Auf die Datei wurde zuletzt vor n*24 Stunden zugegriffen. Wenn find herausfindet, vor wie vielen 24-Stunden-Perioden zuletzt auf die Datei zugegriffen wurde, wird jeder Bruchteil ignoriert. Um also -atime +1 zu finden, muss auf eine Datei vor mindestens zwei Tagen zugegriffen worden sein.
-ctime n
Der Status der Datei wurde zuletzt vor n*24 Stunden geändert. Sehen Sie sich die Kommentare zu -atime an, um zu verstehen, wie sich das Runden auf die Interpretation der Änderungszeiten des Dateistatus auswirkt.
Abhängig von den Anwendungsfällen der Dateien, die Sie löschen möchten, sind dies Ihre einzigen anderen Optionen für find
. Warum ist mtime
Nicht verfügbar? Welches Dateisystem verwendest du? Haben Sie andere Optionen geprüft?