Linux下文件的三个时间(Atime,Mtime,Ctime)

文件的三个时间linux

咱们已经很熟悉windows系统了,那么咱们在windows下新建一个文件,咱们知道它在保存的时候确定是会保存一下文件的建立时间之类的信息的,那么咱们来看看windows下的一个文件保存了几个时间信息。vim

这是我在电脑找到的一个cpp文件,看它的属性是能够看到保存了这个文件的建立时间、修改时间、和访问时间三个时间。windows

那么在linux中是怎样的,咱们在linux中新建一个文件,而后用stat命令查看文件信息,以下图:test

能够从上图看到系统为咱们保存了这个的三个时间,分别是Access time、Modify time、Change time,也就是访问时间、修改时间和状态时间。file

那么与前面所说的windows下作一个对比:权限

在windows下,一个文件有:建立时间、修改时间、访问时间。
而在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态时间im

那么能够知道,在linux中是文件是没有建立时间的,只是若是刚刚建立一个文件,毋庸置疑它的三个时间是都等于建立时间的,就像刚才建立的test文件,咱们看到它的三个时间是相等的。那么在linux上这三个时间分别表明着什么,随着什么而改变:img

>修改时间:文件的内容被最后一次修改的时间,咱们常常用的ls -l命令显示出来的文件时间就是这个时间,当用vim对文件进行编辑以后保存,它的mtime就会相应的改变;di

>访问时间:对文件进行一次读操做,它的访问时间就会改变。例如像:cat、more等操做,可是像以前的state还有ls命令对atime是不会有影响的;文件

>状态时间:当文件的状态被改变的时候,状态时间就会随之改变,例如当使用chmod、chown等改变文件属性的操做是会改变文件的ctime的。

…………………………………………………………………………………………………

每一个时间改变的例子

》》上面的文件信息中能够看到test文件的访问权限,那么我如今给拥有者添加执行权限,chmod u+x test,再此进行stat操做:

能够看到这个改变了它权限的操做知识改变了test的状态时间,其余两个时间是没右改变的。

》》如今对文件进行读操做,cat test,但此时咱们的test中尚未写入什么东西,因此是不会有什么显示出来的

和以前的对比能够看到此时是只有访问权限改变了,其余权限没有变化

》》最后咱们再来用vim指令对test进行编辑,给文件中简单的写入"Hello !"

咦,此时虽说文件的修改时间发生了改变,但同时访问时间和状态时间也被改变了,那么究竟是不是修改时间被改变就改变了文件的三个时间呢?其实这也很好理解,当用vim对文件进行了编辑,那么相应的也至关于访问了文件而且你对文件进行了内容上的添加,这个文件的的大小等状态也发生了变化,因此文件的访问时间和状态时间也会跟着改变,并不奇怪。那么若是我只是用vim命令,没有进行文件内容的添加而是直接退出,就只有它的访问时间发生了改变,说明vim操做先对文件进行访问,以下图所示:

…………………………………………………………………………………………………

单独查看三个时间的操做

除了能够经过stat来查看文件的mtime,ctime,atime等属性,也能够经过ls命令来查看,具体以下:

ls -lc filename 列出文件的 ctime (最后更改时间)

ls -lu filename 列出文件的 atime(最后存取时间)

ls -l filename 列出文件的 mtime (最后修改时间)

相关文章
相关标签/搜索