-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?