Chinaunix首页 | 论坛 | 博客
  • 博客访问: 541244
  • 博文数量: 119
  • 博客积分: 3167
  • 博客等级: 中校
  • 技术积分: 1215
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-20 21:21
文章分类

全部博文(119)

文章存档

2015年(21)

2012年(4)

2011年(1)

2007年(11)

2006年(50)

2005年(32)

分类: LINUX

2006-01-12 21:33:05

所有文件都有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
阅读(2582) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~