免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1203 | 回复: 0
打印 上一主题 下一主题

理解 atime mtime ctime [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-12 21:33 |只看该作者 |倒序浏览
所有文件都有3个时间信息,保存在文件系统中
atime (Access time)
是文件最后一此读的时间 或者执行文件的时间
mtime (Modified time)
是文件最后一次写的时间(是在写入文件时随文件内容的更改而更改的)
ctime (Create time)
是i-node信息最后一次写的时间.
写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的
你使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息
這三個 time stamp 都放在 inode 中.
若只是读文件 那么只会修改atime (一个可执行文件执行也会改变它的atime)
一般 mtime修改, inode 就會改(使用touch -m 可以只改mtime而不改ctime), 既然 inode 改了, 那 ctime 也就跟著要改了.
之所以在 mount option 中使用 noatime, 就是不想 file system 做太多的修改, 而改善讀取效能.
mount 选项里面是没有noctime和nomtime的   
结论:
更改文件的内容即会更改 mtime 和 ctime , atime不一定被更改 如清空文件 >temp
ctime 可能会在 mtime 未发生任何变化时更改--在权限更改,但是文件内容没有变化的情况下  更改文件名时 也是ctime改变mtime不变
修改mtime一般都会改ctime  , 但是touch -tm time file 就只改modified time 而不改ctime
应用:
1> mount 使用选项noatime可以改善读取性能
2> 使用 ls 来对文件时间属性排序
ls -lc 列出文件的ctime  , 排序ls -ltc
ls -lu 列出文件的atime  , 排序ls -ltu
ls -l  所列出来的时间是mtime
列出文件的mtime并排序    ls -lt
3> find
找出一天之内被修改过的文件,使用ctime 因为有可能改变属性的操作 会改变ctime, 而不会改变mtime
shell > find ./ -ctime -1

如果要找出 前天和昨天之间ctime被改变的文件
使用touch 两个文件 然后在用find找   但是 touch 不能改变文件的ctime 只能改变mtime和atime
find 参数 newer比较的是mtime
假如现在是01122000   1月12号20点0分
shell > touch -mt 01112000 filename
shell > touch -mt 01102000 filename
[root@localhost test]# find ./ -newer t3dayago ! -newer tempnow
./tempnow
./tyesterday
./t2dayago
[root@localhost test]# find ./ -newer t3dayago
./
./tempnow
./tyesterday
./note
./t2dayago


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/9293/showart_67443.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP