Isso deve funcionar:
find -type f -print0 | xargs -0 -I % find -path % -anewer %
Com o comando find, é fácil encontrar arquivos que foram modificados ou acessados dentro de um determinado período.
Quando um arquivo é criado, o tempo de acesso é o mesmo que o tempo de modificação. Mas assim que é acessado (lido), o tempo de acesso muda, mas o tempo de modificação não.
Eu preciso encontrar arquivos que foram acessados, ou seja, arquivos que têm tempo de acesso mais recente que o tempo de modificação.
Como faço isso?
Eu não acho que haja uma maneira de fazer isso em uma única travessia com o GNU find (sem falar no POSIX find). É um simples one-liner com File::Find
do Perl:
perl -MFile::Find -e 'find({wanted => sub {print "$File::Find::name\n" if -f && -M _ > -A _}}, @ARGV);' .
Certifique-se de que seus arquivos estejam montados sem a opção noatime
ou relatime
- as distribuições recentes do Linux tendem a usá-lo por padrão.
Tags linux