Я изо всех сил , чтобы обернуть свой ум вокруг почему в find
интерпретируют файл время модификации так , как это делает. В частности, я не понимаю, почему -mtime +1
файлы не отображаются менее чем за 48 часов.
В качестве примера теста я создал три тестовых файла с разными датами изменения:
[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
Затем я запустил find с -mtime +1
переключателем и получил следующий вывод:
[root@foobox findtest]# find -mtime +1
./foo3
Затем я запустил find с -mmin +1440
и получил следующий вывод:
[root@foobox findtest]# find -mmin +1440
./foo3
./foo2
Согласно man-странице для find, я понимаю, что это ожидаемое поведение:
-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.
Это все еще не имеет смысла для меня, хотя. Итак, если файлу 1 день, 23 часа, 59 минут и 59 секунд, find -mtime +1
игнорировать все это и просто обрабатывать его как 1 день, 0 часов, 0 минут и 0 секунд? В каком случае, это технически не старше 1 дня и игнорируется?
Не считается.