所有文件都有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
|
阅读(2614) | 评论(0) | 转发(0) |