Я з усіх сил , щоб обернути свій розум навколо чому в 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
Потім я побіг знайти за допомогою -mtime +1
перемикача і отримав такий вихід:
[root@foobox findtest]# find -mtime +1
./foo3
Потім я побіг знайти з -mmin +1440
і отримав наступний вихід:
[root@foobox findtest]# find -mmin +1440
./foo3
./foo2
Згідно з довідковою сторінкою для пошуку, я розумію, що така поведінка очікується:
-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 дня і проігноровано?
Чи ... не ... обчислює.