La especificación POSIX para encontrar dice:
-mtime
n
El principal se evaluará como verdadero si el tiempo de modificación del archivo restado del tiempo de inicialización, dividido por 86400 (con cualquier resto descartado), es n
.
Curiosamente, la descripción de find
no especifica más el 'tiempo de inicialización'. Sin embargo, probablemente sea el momento en que find
se inicializa (ejecutar).
En las descripciones, dondequiera que n
se utiliza como argumento principal, se interpretará como un entero decimal opcionalmente precedido por un signo más ('+') o menos ('-'), de la siguiente manera:
+n
Más de n
.
n
Exactamente n
.
-n
Menos de n
.
Puedes escribir -mtime 6
o -mtime -6
o -mtime +6
:
- Usando
6
sin signo significa "igual a 6 días, modificado entre 'ahora - 6 * 86400' y 'ahora - 7 * 86400'" (porque se descartan los días fraccionarios). - Usando
-6
significa "menos de 6 días de antigüedad, por lo que se modificó en o después de 'ahora - 6 * 86400'". - Usando
+6
significa "más de 6 días de antigüedad, por lo que se modificó en o antes de 'ahora - 7 * 86400'" (donde el 7 es un poco inesperado, quizás).
En el momento dado (2014-09-01 00:53:44 -4:00, donde deduzco que AST es la hora estándar del Atlántico y, por lo tanto, la diferencia de zona horaria con respecto a UTC es -4:00 en ISO 8601 pero + 4:00 en ISO 9945 (POSIX), pero no importa tanto):
1409547224 = 2014-09-01 00:53:44 -04:00
1409457540 = 2014-08-30 23:59:00 -04:00
entonces:
1409547224 - 1409457540 = 89684
89684 / 86400 = 1
Incluso si los valores de 'segundos desde la época' son incorrectos, los valores relativos son correctos (para alguna zona horaria en algún lugar del mundo, son correctos).
El n
el valor calculado para el archivo de registro 2014-08-30, por lo tanto, es exactamente 1
(el cálculo se hace con aritmética de enteros), y el +1
lo rechaza porque es estrictamente un > 1
comparación (y no >= 1
).
+1 significa hace 2 días. Es redondeado.