Linux的三个时间(mtime\ctime\atime)

每个文件在linux底下都会记录许多的时间参数    但是有三个主要的变动时间   其分别是

mtime( modification time)            ctime(status time)            atime(access time)


分别来看这三个时间的意义

mtime :   当文件的 内容数据 改变时,会更新这个时间。这里的 内容数据 指的是文件的内容,而不是文件的属性或者权限!!

ctime :    当文件的 状态 改变时,会更新这个时间。这里的 状态和上面的内容数据相反,指的是文件的权限或者属性,而非文件内容!!

atime :    当数据被 读取 时,会更新这个时间。比如我们用cat或者more等指令去读取文件,则此时间更新。


上面是三种时间的理论下会改变的时机,但实际上这三个时间相互间是有影响的,

接下来我们做几个实验来对上面的几个时间一个一个的试一试

=====================================================================================================================


首先我们随便找个空文件夹 先建立三个文件 其分别是 tm tc ta

再通过ls 来看一看三个文件的三种时间

在第一条指令中  使用 ls -l 看到的是 三个文件的 mtime 因为默认情况下 ls 显示的就是文件的mtime!!!

可以看到现在三个文件的三种时间都是一样的!!!

---------------------------------------------------------------------------------------------------------------------------------------------------------------


接下来我们改变 文件 tm 的 数据内容  尝试改变一下其mtime

这里我用 cat > tm 随意写入一些数据到 tm 里面 


再来看看文件 tm 的时间

首先 tm 的mtime改变,这点符合我们的预期

但是再一看,会发现 tm 的 ctime 也改变了!!

这是为什么呢?

这里我说一下个人的理解:在更新文件内容的同时,文件的权限和属性也会一并更新!!!!

比喻一下的话就是整个文件是一个房间,而文件的权限和属性就是房间的门,当你想要重新布置房间的时候,一定会开门和关门,当你关门的时候,不管你有没有“换锁(改变权限或者属性)”,门都

相当于使用过了,从而门的状态会被更新一次!!


------------------------------------------------------------------------------------------------------------------------------------------------------------


接下来我们改变文件 tc 的权限和属性

发现 tc 的ctime 改变  其他两个时间没变  符合预期 !!


------------------------------------------------------------------------------------------------------------------------------------------------------------


最后我们在来读取文件 ta 试试

发现 ta 的atime改变 ,其他两个时间没变,符合预期!!

但是先不要急着结束实验,我们再试一次 读取 ta!!


看看上面这几条指令!!

第二行显示的是我执行那几条指令的时间,可以发现,当我more ta后,最后一行显示的 ta 的 atime居然没有更新!

这是怎么回事? 

请教了别人之后 在网上找到这么一段话

总之就是一句话:系统设置了一个时间差,只有在当前读取时间与上次读取时间大于这个时间差的时候,系统才会更新此文件的atime!!


------------------------------------------------------------------------------------------------------------------------------------------------------------


最后总结一下三种时间直接相互的影响关系:

改变 文件权限和属性 只会改变 ctime

读取文件 只会改变 atime

改变 数据内容 会改变 mtime 和 ctime



对于上面的影响关系,我再说说自己的理解,还是沿袭上面那个房间和门的比喻:

          一个文件相当于一个房间,其数据内容相当于房间内的物品,其权限和属性相当于房间的门。

          当你想要给房间换锁(改变文件权限和属性)时,不需要进入房间,在门外就能完成,因此换锁完成后系统就只会更新门的状态!因此有了上面的关系一。

          而当你想要参观房间(读取文件)时,系统提前知道了你的来意,他知道你只是来参观,不会动房间的物品!因此当你离开后,系统不会更新房间的任何状态,只是记下你来访的时间(即读取时间)!因此有了上面的关系二。

          而当你想要重新布置房间(改变数据内容)时,系统会提前将房间给你空出来,不会让你看到以前房间的样子,当你开门进来,布置房间,再关门出去的时候,房间的内部和门都已经使用过了,因此系统需要将房内和房门一起更新!!因此有了上面的关系三!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值