查找创建后被访问过的文件

查找创建后被访问过的文件

使用 find 命令可以轻松找到在给定时间段内被修改或访问的文件。

当文件被创建时,访问时间与修改时间相同。但是一旦被访问(读取),访问时间就会改变,但修改时间不会改变。

我需要找到所有被访问过的文件,即访问时间比修改时间更新的文件。

我怎么做?

答案1

这应该有效:

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

答案2

我认为没有办法使用 GNU find(更不用说 POSIX find)在一次遍历中完成此操作。这是使用 Perl 的简单一行代码File::Find

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

确保您的文件在安装时没有使用noatimerelatime选项 — 最近的 Linux 发行版倾向于默认使用它。

相关内容