-mtime
est un prédicat standard de find
(contrairement à -delete
) mais il semble que vous ayez une version allégée de busybox
, où le FEATURE_FIND_MTIME
la fonctionnalité a été désactivée au moment de la construction.
Si vous pouvez reconstruire la busybox en l'activant, vous devriez pouvoir faire :
find . -mtime +6 -type f -exec rm -f {} +
Ou si FEATURE_FIND_DELETE
est également activé :
find . -mtime +6 -type f -delete
Sinon, d'autres options pourraient être d'utiliser find -newer
(en supposant FEATURE_FIND_NEWER
est activé) sur un fichier défini pour avoir une date de modification d'une semaine.
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -newer ../ref -exec rm -f {} +
Ou si -newer
n'est pas disponible mais sh
est [
prend en charge -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
À partir de man find
:
-atime n
Le fichier a été consulté pour la dernière fois il y a n*24 heures. Lorsque find calcule combien de périodes de 24 heures le fichier a été consulté pour la dernière fois, toute partie fractionnaire est ignorée, donc pour correspondre à -atime +1, un fichier doit avoir été consulté il y a au moins deux jours.
-ctime n
L'état du fichier a été modifié pour la dernière fois il y a n*24 heures. Consultez les commentaires pour -atime pour comprendre comment l'arrondi affecte l'interprétation des heures de changement de statut de fichier.
Selon les cas d'utilisation des fichiers que vous souhaitez supprimer, ce sont vos seules autres options pour find
. Pourquoi mtime
indisponible? Quel système de fichiers utilisez-vous ? Avez-vous exploré d'autres options ?