ubuntu14.04.3 LTS中的atime, ctime, mtime的含义
来源:互联网 发布:子域名查询工具3.0 编辑:程序博客网 时间:2024/05/29 16:26
Linux系统文件有三个主要的时间属性,分别是 ctime(change time status time见鸟哥的linux私房菜), atime(access time), mtime(modify time)。这三个时间很容易混淆,准备深入了解Linux的童鞋请区分这三者的区别
atime:Access time,是在读取文件或者执行文件时更改,即文件最后一次被读取的时间。
说明: st_atime
Time when file data was last accessed. Changed by the
following functions: creat(), mknod(), pipe(),
utime(2), and read(2).
mtime:Modified time,是在写入文件时随文件内容的更改而更改,是指文件内容最后一次被修改的时间。
说明: st_mtime
Time when data was last modified. Changed by the fol-
lowing functions: creat(), mknod(), pipe(), utime(),
and write(2).
ctime:Change time,是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改,即文件状态最后一次被改变的时间。
说明: st_ctime
Time when file status was last changed. Changed by the
following functions: chmod(), chown(), creat(),
link(2), mknod(), pipe(), unlink(2), utime(), and
write().
很多人把它理解成create time,包括很多误导人的书籍也是这么写。实际上ctime是指change time。
注意:
1、修改是文本本身的内容发生了变化(mtime)
改变是文件的索引节点发生了改变(ctime)
2、如果修改了文件内容,则同时更新ctime和mtime
3、如果只改变了文件索引节点,比如修改权限,则只是改变了ctime
4、如果使用ext3文件系统的时候,在mount的时候使用了noatime参数则不会更新atime的信息,即访问文件之后atime不会被修改,而这个不代表真实情况
小知识:这三个 time stamp 都放在 inode 中。若mtime,atime修改, inode 就一定会改,相应的inode改了,那ctime 也就跟着要改了,之所以在mount option中使用 noatime, 就是不想 file system 做太多的修改, 从而改善读取性能.
查看文件的 atime、ctime 和 mtime。
# ls -lc filename 列出文件的 ctime
# ls -lu filename 列出文件的 atime
# ls -l filename 列出文件的 mtime
例子
1: # echo "Hello World" >> myfile atime不变,同时改变了ctime和mtime
2: # cat myfile ctime和mtime不变,只改变atime
# ls myfile
ctime和mtime以及atime都不改变
3: # chmod u+x myfile mtime和atime不变,只改变ctime
4: # mv myfile ../
mtime和atime不变,只改变ctime
其他扩展:
relatime属性
从kernel2.6.29开始,默认集成了一个 relatime的属性。使用这个特性来挂装文件系统后,只有当mtime比atime更新的时候,才会更新atime。
使用场景:
在文件读操作很频繁的系统中,atime更新所带来的开销很大,所以在挂装文件系统的时候使用noatime属性来停止更新atime。但是有些程序需要根据atime进行一些判断和操作,这个时候relatime特性就派上用场了。其实在事实上,这个时候atime和mtime已经是同一个time,所以可以理解这个选项就是为了实现对atime的兼容才推出的,并不是一个新的时间属性。
使用方法: # mount -o relatime /dir##挂载目录的时候加relatime参数
下面的截图是ubuntu14.04.3 LTS中的atime, ctime, mtime中的3个时间,默认是显示的mtime,
ls --time=atime filename 等价于ls -lu filename, ls --time=ctime filename等价于ls -lc filename。
在当前版本中atime, access, use, -u都表示的是atime,同样ctime, status, -c表示的都是ctime,默认就是mtime,--time这里没有mtime的参数给出。
- ubuntu14.04.3 LTS中的atime, ctime, mtime的含义
- 【linux】中的Atime,Ctime,Mtime
- Linux中的Atime,Mtime,Ctime
- Linux中的atime, ctime, mtime
- linux的ctime,atime,mtime
- Linux系统中的atime、mtime、ctime之间的区别
- find 中的 -ctime 和 -mtime ,-atime 区别
- linux中ctime,mtime,atime的区别
- linux文件的atime,mtime,ctime
- linux文件的mtime,ctime,atime
- Linux的三个时间(mtime\ctime\atime)
- linux中ctime,mtime,atime的区别
- linux中ctime,mtime,atime的区别
- Linux atime ctime mtime的不同
- linux 文件的atime,ctime,mtime
- Linux关于ctime,mtime,atime的意义
- atime ctime 和mtime 的日常
- 浅析Linux下的atime、ctime、mtime
- C++Builder实现鼠标钩子
- CodeForces CF 360E Levko and Game 贪心+SPFA
- Python3.5安装numpy,SciPy后,出现ImportError
- max-min fairness 最大最小公平算法
- B. Rebranding
- ubuntu14.04.3 LTS中的atime, ctime, mtime的含义
- 纳兰性德词全集
- linux网络编程
- 11,递归函数
- Qt初学经验总结
- Android编码文件操作相关工具类
- android LocationManager的简单使用(获取经纬度信息到textview显示)
- Ajax异步请求——接受服务器返回的五种响应+补充
- 黑马程序员_NSArray