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
6sin signo significa "igual a 6 días, modificado entre 'ahora - 6 * 86400' y 'ahora - 7 * 86400'" (porque se descartan los días fraccionarios). - Usando
-6significa "menos de 6 días de antigüedad, por lo que se modificó en o después de 'ahora - 6 * 86400'". - Usando
+6significa "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.