-mtime
es un predicado estándar de find
(al contrario de -delete
) pero parece que tienes una versión simplificada de busybox
, donde el FEATURE_FIND_MTIME
la función se ha deshabilitado en el momento de la compilación.
Si puede reconstruir el cuadro ocupado con él habilitado, debería poder hacer:
find . -mtime +6 -type f -exec rm -f {} +
O si FEATURE_FIND_DELETE
también está habilitado:
find . -mtime +6 -type f -delete
Si no, otras opciones podrían ser usar find -newer
(asumiendo FEATURE_FIND_NEWER
está habilitado) en un archivo que está configurado para tener un tiempo de modificación de una semana.
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -newer ../ref -exec rm -f {} +
O si -newer
no está disponible pero sh
[
de admite -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
Desde man find
:
-ahora n
Se accedió al archivo por última vez hace n*24 horas. Cuando find calcula cuántos períodos de 24 horas atrás se accedió al archivo por última vez, se ignora cualquier parte fraccionaria, por lo que para que coincida con -atime +1, se debe haber accedido a un archivo hace al menos dos días.
-ctiempo n
El estado del archivo se modificó por última vez hace n*24 horas. Consulte los comentarios de -atime para comprender cómo afecta el redondeo a la interpretación de las horas de cambio de estado del archivo.
Dependiendo de los casos de uso de los archivos que desea eliminar, estas son sus únicas otras opciones para find
. ¿Por qué es mtime
¿no disponible? ¿Qué sistema de archivos estás usando? ¿Exploraste otras opciones?