У меня есть две разные системы на основе Linux, в которых команда find работает не так, как ожидалось.
У меня есть справочник. В ней бегаю ...
ls -l
и система возвращается ...
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:28 folder1
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:28 folder2
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:25 folder3
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 24 09:52 folder4
сегодня 24.05.17.
В том же каталоге, если я бегу ...
find . -mtime +1 -type d
система ничего не возвращает.
Насколько я понимаю, команда find должна найти все каталоги "-type d" в текущем каталоге "." которым больше 1 дня "-mtime +1". Так...
folder1
folder2
folder3
все должны быть перечислены, насколько я понимаю. Две системы, находящиеся под моей опекой, демонстрируют такое поведение. Я что-то делаю неправильно или что-то упускаю? Может ли что-то изменять каталоги таким образом, что ls -l не отражает правильную дату изменения? Есть ли что-то еще, что я мог бы попытаться устранить проблему? Любая помощь приветствуется.
Из-за странного способа mtime
округляется, +1
означает «48 часов и более». Это задокументировано на странице руководства.
Чтобы запомнить это, нужно начать с самого простого использования: -mtime 1
это означает, что доступ к файлу был осуществлен 24 часа назад плюс любая дробь (например, 24 + 23 часа также будут соответствовать). Из этого «логически» следует, что +1
и -1
значит.