3

С помощью команды find легко найти файлы, которые были изменены или к которым обращались в течение заданного периода.

Когда файл создан, время доступа совпадает со временем изменения. Но как только к нему обращаются (читают), время доступа изменяется, а время изменения - нет.

Мне нужно найти файлы, к которым обращались вообще, т.е. файлы, у которых время доступа новее, чем время изменения.

Как я могу это сделать?

2 ответа2

2

Это должно работать:

find -type f -print0 | xargs -0 -I % find -path % -anewer %
2

Я не думаю, что есть способ сделать это за один проход с помощью GNU find (не говоря уже о POSIX find). Это простой однострочный файл с Perl's File::Find:

perl -MFile::Find -e 'find({wanted => sub {print "$File::Find::name\n" if -f && -M _ > -A _}}, @ARGV);' .

Убедитесь, что ваши файлы смонтированы без noatime или relatime - последние дистрибутивы Linux используют его по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .