首页 > 系统相关 >Linux下文件的三个时间(Atime,Mtime,Ctime)

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

时间:2022-10-29 10:02:59浏览次数:53  
标签:文件 Ctime 访问 Linux 改变 时间 ls Mtime test

文件的三个时间

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

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

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

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

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

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

那么与前面所说的windows下做一个对比:

在windows下,一个文件有:创建时间、修改时间、访问时间。

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

那么可以知道,在linux中是文件是没有创建时间的,只是如果刚刚创建一个文件,毋庸置疑它的三个时间是都等于创建时间的,就像刚才创建的test文件,我们看到它的三个时间是相等的。那么在linux上这三个时间分别代表着什么,随着什么而改变:

>修改时间:文件的内容被最后一次修改的时间,我们经常用的ls -l命令显示出来的文件时间就是这个时间,当用vim对文件进行编辑之后保存,它的mtime就会相应的改变;
>访问时间:对文件进行一次读操作,它的访问时间就会改变。例如像:cat、more等操作,但是像之前的state还有ls命令对atime是不会有影响的;
>状态时间:当文件的状态被改变的时候,状态时间就会随之改变,例如当使用chmod、chown等改变文件属性的操作是会改变文件的ctime的。

每个时间改变的例子

上面的文件信息中可以看到test文件的访问权限,那么我现在给拥有者添加执行权限,chmod u+x test,再此进行stat操作:

Linux下文件的三个时间(Atime,Mtime,Ctime)_修改时间_03

可以看到这个改变了它权限的操作知识改变了test的状态时间,其他两个时间是没右改变的。

现在对文件进行读操作,cat test,但此时我们的test中还没有写入什么东西,所以是不会有什么显示出来的

Linux下文件的三个时间(Atime,Mtime,Ctime)_修改时间_04

和之前的对比可以看到此时是只有访问权限改变了,其他权限没有变化。

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

Linux下文件的三个时间(Atime,Mtime,Ctime)_修改时间_05

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

Linux下文件的三个时间(Atime,Mtime,Ctime)_修改时间_06

单独查看三个时间的操作,除了可以通过stat来查看文件的mtime,ctime,atime等属性,也可以通过ls命令来查看,具体如下:

ls -lc filename 列出文件的 ctime (最后更改时间)
ls -lu filename 列出文件的 atime(最后存取时间)
ls -l filename 列出文件的 mtime (最后修改时间)

标签:文件,Ctime,访问,Linux,改变,时间,ls,Mtime,test
From: https://blog.51cto.com/u_13753753/5805731

相关文章

  • virtual memory exhausted: Cannot allocate memory Linux
    https://blog.csdn.net/u014171641/article/details/104027339 https://blog.csdn.net/cliukai/article/details/93988721?spm=1001.2101.3001.6650.1&utm_medium=distr......
  • 【整理】Linux:set -eux
    背景我们经常见到很多设立了脚本打头会写如下set-e或者set-ex或者set-eux这是什么意思呢?具体解释一下Linuxset命令用于设置shell。set指令能设置所使用shel......
  • vmware linux改硬盘大小,vmware中为linux增加硬盘和增加硬盘空间的方法
    一、Vmware中为linux增加硬盘的方法1.在vmware中为Linux虚拟机的编辑设置中(setting)增加一个硬盘。2.在vmware中看见第1个硬盘是/dev/sda,第2个硬盘是/dev/sdb3.......
  • linux 中如何在指定行后面插入内容
     001、[root@pc1test]#lsa.txt[root@pc1test]#cata.txt##测试数据123456[root@pc1test]#sed'3axx'a.txt##在第3行后面......
  • Linux内核设计与实现 第三版 电子书 pdf
    作者:[美]RobertLove出版社:机械工业出版社原作名:LinuxKernelDevelopment译者:陈莉君/康华 链接:Linux内核设计与实现第三版  本书详细描述了Linux内......
  • 奔跑吧Linux内核 电子书 pdf
    作者:张天飞出版社:人民邮电出版社链接:奔跑吧Linux内核  本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及......
  • Linux内核完全注释 修正版 电子书 pdf
    作者:赵炯出版社:机械工业出版社 链接:Linux内核完全注释  Linux内核完全注释,ISBN:9787111149682,作者:赵炯编著......
  • 开源Linux拥抱车载娱乐系统
    AppleCarPlay和AndroidAuto已经开始角力争夺车载娱乐系统市场,而现在开源Linux在也开始在该领域中发力。AutoMotiveGradeLinux(AGL)项目宣布UnifiedCodeBase2.0,致力于......
  • 【科研利器】你想知道Linux下文件名的颜色代表什么吗?
    最近开始接触模式了,对服务器的使用也渐渐多了起来。以前虽然也用服务器,但大多是用jupyter远程连接上之后编程跑代码(【科研利器】在服务器上也能使用jupyter?学它!)。现在接......
  • 小强Linux常用命令(一)
    1、在命令模式下输入setnu,展示文本行号2、按字符复制与粘贴v(小写),便可以进入按字符选择模式,通过h、j、k、l键移动光标选择要进行复制的字符串3、u:撤回;ctrl+r恢复4、y:......