浅析Linux下的atime、ctime、mtime

来源:互联网 发布:软件著作权申请表范本 编辑:程序博客网 时间:2024/05/15 23:52

本文内容概要: 
1、简述atime,ctime,mtime。 
2、cp、mv等指令对3个时间的影响。 
3、touch指令如何修改3个时间。


1、简述atime,ctime,mtime: 
说到这三个时间的时候,不得不先说一下touch指令。 
初次接触touch指令的时候,我只知道它可以用来创建一个新的文件,可是,如果我们再次在该目录下执行touch指令,会出现什么效果呢?创建不成功还是创建成功?请看下图。 
这里写图片描述
【总结】 
touch +filename 
1.当前目录下不存在filename时,touch指令可以创建一个名为filename的文件。 
2.当前目录下存在filename时,touch指令可以修改filename文件的时间。

由于新建一个文件是比较简单的,所以本文主要分析文件的3个时间是干什么用的,以及 touch指令是如何修改文件的时间。 
这里写图片描述
注明:以下的每个测试之前都将文件的时间设定为当前时间,便于观察各个时间的变动。 
1.文件的3个时间 
1>验证atime的改变。 
向文件中写入内容,然后将时间改为当前的时间。 
这里写图片描述
【总结 】 
只有进行读文件操作时,atime才会被改变。


2>验证mtime的改变。

这里写图片描述
我向文件中重新写入 hello 仅仅改变了内容,为什么文件的ctime也会跟着改变呢?一开始对于这个问题我也是比较模糊,我觉得文件的大小,文件的类型等等都没有改变,ctime应该不会变。后来通过和同学的讨论,就有:只有mtime改变或者手动修改了atime,ctime是必然改变的。(注意:上边对atime的验证,那并不是手动修改的atime) 
所以,我认为:一般mtime的改变可能就会引起ctime的改变,但是atime的改变就不一定引起ctime的改变。


3>验证ctime的改变。 
修改文件的权限为 666. 
这里写图片描述
修改文件的所有者为root 
这里写图片描述
所以,我们可以看出,修改文件的权限或者所有者等等信息的时候,就会改变文件的ctime。 
注意: 
ll(ls-l命令的别名)显示的时间就是mtime。 
这里写图片描述


2、一些指令对3个时间的影响: 
mv指令: 
这里写图片描述
cp指令: 
这里写图片描述


3.深入了解touch指令(touch指令对时间的影响) 
1>touch -a 文件名,修改atime,随即修改ctime 
这里写图片描述
2>touch -c 文件名 
这里写图片描述
3>touch -d 文件名 将atime和mtime更新为给定时间,ctime更新为当前时间。

这里写图片描述
这里写图片描述
4>touch -m 文件名 修改mtime,但是也会改变ctime 
这里写图片描述
5>touch -t 文件名 修改atime和mtime,ctime是当前时间 
这里写图片描述

0 0
原创粉丝点击