理解 atime mtime ctime

所有文件都有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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值