Estoy luchando por entender por qué la find
modificación de archivos interpreta la forma en que lo hace. Específicamente, no entiendo por qué -mtime +1
no muestra archivos con menos de 48 horas de antigüedad.
Como ejemplo de prueba, creé tres archivos de prueba con diferentes fechas modificadas:
[root@foobox findtest]# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 25 08:44 foo1
-rw-r--r-- 1 root root 0 Sep 24 08:14 foo2
-rw-r--r-- 1 root root 0 Sep 23 08:14 foo3
Luego ejecuté find con el -mtime +1
interruptor y obtuve el siguiente resultado:
[root@foobox findtest]# find -mtime +1
./foo3
Luego ejecuté find con el -mmin +1440
y obtuve el siguiente resultado:
[root@foobox findtest]# find -mmin +1440
./foo3
./foo2
Según la página del manual para encontrar, entiendo que este es el comportamiento esperado:
-mtime n
File’s data was last modified n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file modification times.
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
Sin embargo, esto todavía no tiene sentido para mí. Entonces, si un archivo tiene 1 día, 23 horas, 59 minutos y 59 segundos, ¿ find -mtime +1
ignora todo eso y lo trata como si tuviera 1 día, 0 horas, 0 minutos y 0 segundos? En cuyo caso, no es técnicamente más viejo que 1 día e ignorado?
No computa.