![查找修改访问时间](https://linux22.com/image/27311/%E6%9F%A5%E6%89%BE%E4%BF%AE%E6%94%B9%E8%AE%BF%E9%97%AE%E6%97%B6%E9%97%B4.png)
我必须找到那些前一天被修改过的文件。有很多文件是前一天修改的。我在做find ./ -type f -mtime -1
。但是,我观察到我的磁盘利用率达到 100%。这可能是因为每个文件的访问时间修改了。有没有办法在不修改访问时间的情况下查找文件?
答案1
您的磁盘使用率飙升,因为查找结果扫描了很多目录。您的磁盘使用情况监视器可能会在同一图表中报告读取和写入情况。
通常,如果您在同一目录结构上连续进行多次查找,则后续查找不会访问磁盘,因为查找所需的所有磁盘块(即目录列表)都从前一个查找中缓存在内存中。
除了已经将块缓存在内存中之外,没有办法减少查找操作的磁盘负载(好吧,您可以很好地处理它或在那里进行睡眠,但这不会减少所需的磁盘访问次数) 。
答案2
通常find
不会修改文件的访问时间。要获取文件的修改时间和访问时间可以使用stat
命令
例如:
$ stat filename
输出
File: `filename'
Size: 683 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 34177055 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-11-26 03:50:01.000000000 -0500
Modify: 2012-11-26 03:22:04.000000000 -0500
Change: 2012-11-26 03:22:04.000000000 -0500
答案3
您可能想弄乱noatime
文件系统挂载中的属性。
我相信现在几乎没有理由保持文件系统更新atime
(可能还剩下一些,例如旧的邮件程序过去常常使用它们来了解自上次用户访问邮件程序以来是否已读取某些文件......但是这现在应该是非常古老的行为了)。然而,它仍然是许多文件系统和 unix/linux 系统上的默认设置。我欢迎了解为什么现在仍然需要它的信息......
更多信息有:http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html
(当我在搜索引擎中搜索“noatime”时,我选择了第一个链接......应该足够好,但您可能可以在其他地方找到更多信息)