-mtime
è un predicato standard di find
(contrariamente a -delete
) ma sembra che tu abbia una versione ridotta di busybox
, dove FEATURE_FIND_MTIME
la funzione è stata disabilitata al momento della compilazione.
Se riesci a ricostruire busybox con esso abilitato, dovresti essere in grado di fare:
find . -mtime +6 -type f -exec rm -f {} +
O se FEATURE_FIND_DELETE
è abilitato anche:
find . -mtime +6 -type f -delete
In caso contrario, altre opzioni potrebbero essere l'utilizzo di find -newer
(assumendo FEATURE_FIND_NEWER
è abilitato) su un file che è impostato per avere un tempo di modifica vecchio di una settimana.
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -newer ../ref -exec rm -f {} +
O se -newer
non è disponibile ma sh
è [
supporta -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
Da man find
:
-atime n
Ultimo accesso al file n*24 ore fa. Quando find calcola quanti periodi di 24 ore fa è stato effettuato l'ultimo accesso al file, qualsiasi parte frazionaria viene ignorata, quindi per far corrispondere -atime +1, è necessario che sia stato effettuato l'accesso a un file almeno due giorni fa.
-ctempo n
Lo stato del file è stato modificato l'ultima volta n*24 ore fa. Vedi i commenti per -atime per capire come l'arrotondamento influisce sull'interpretazione dei tempi di modifica dello stato del file.
A seconda dei casi d'uso dei file che desideri eliminare, queste sono le tue uniche altre opzioni per find
. Perché è mtime
non disponibile? Che filesystem stai usando? Hai esplorato altre opzioni?