Назад | Перейти на главную страницу

Linux find и использование -mtime

У меня есть две разные системы на основе 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 значит.