Linux中的 atime mtime ctime

查看一个文件的i节点内容:

$ stat a.txt
  File: 'a.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 1710819     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1001/     tom)   Gid: ( 1001/     tom)
Access: 2018-05-31 16:42:13.792121737 +0800
Modify: 2018-05-31 16:42:13.792121737 +0800
Change: 2018-05-31 16:42:13.792121737 +0800
 Birth: -

这里关注其中的三行:

Access: 2018-05-31 16:42:13.792121737 +0800
Modify: 2018-05-31 16:42:13.792121737 +0800
Change: 2018-05-31 16:42:13.792121737 +0800

这是三个时间,这三个时间的标签分别是Access(也叫做atime)、Modify(也叫做mtime)和Change(也叫做ctime)。那么这三个时间分别代表什么意义呢?

  • atime:访问时间。表示文件最后被访问的时间。
  • mtime:修改时间。表示文件内容最后被修改的时间。
  • ctime:更改时间:表示文件最后被改变的时间,包括文件状态(比如权限、所有者等)和文件内容的改变。

下面是一个例子。

首先,创建一个文件并查看其i节点内容:

$ touch now.txt
$ stat now.txt
  File: 'now.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 1710866     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1001/     tom)   Gid: ( 1001/     tom)
Access: 2018-06-12 12:15:15.971914864 +0800
Modify: 2018-06-12 12:15:15.971914864 +0800
Change: 2018-06-12 12:15:15.971914864 +0800
 Birth: -

可以看到,这三个时间在文件创建的时候是相同的。

接下来,使用cat显示文件内容(现在文件内容是空的),并查看i节点内容:

$ cat now.txt
$ stat now.txt
  File: 'now.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d    Inode: 1710866     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1001/     tom)   Gid: ( 1001/     tom)
Access: 2018-06-12 12:17:33.223919004 +0800
Modify: 2018-06-12 12:15:15.971914864 +0800
Change: 2018-06-12 12:15:15.971914864 +0800
 Birth: -

在显示文件(文件被访问)之后,仅有atime更新。

给文件添加内容并查看i节点内容:

$ echo "Hello, World!" > now.txt
$ stat now.txt
  File: 'now.txt'
  Size: 14              Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 1710866     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1001/     tom)   Gid: ( 1001/     tom)
Access: 2018-06-12 12:17:33.223919004 +0800
Modify: 2018-06-12 12:18:57.627921500 +0800
Change: 2018-06-12 12:18:57.627921500 +0800
 Birth: -

mtime和ctime得到了更新,因为文件的内容变化了。如果使用vim等编辑器更改文件内容,atime也会得到更新。

最后,修改文件权限看看:

$ chmod a+x now.txt
$ stat now.txt
  File: 'now.txt'
  Size: 14              Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 1710866     Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1001/     tom)   Gid: ( 1001/     tom)
Access: 2018-06-12 12:17:33.223919004 +0800
Modify: 2018-06-12 12:18:57.627921500 +0800
Change: 2018-06-12 12:21:11.595925387 +0800
 Birth: -

仅有ctime得到了更新。

原文发布于微信公众号 - mwangblog(mwangblog)

原文发表时间:2018-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

利用anaconda搞定所有Python安装问题

很多人按照我之前的Python安装教程可以成功,但是方法之下必定有BUG,所以还有一部分人(电脑)无法配置成功,有没有一个软件可以自带一系列常用的安装包!!! ...

64060
来自专栏程序员的SOD蜜

使用“消息服务框架”(MSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)

1,示例解决方案介绍 在上一篇 《消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现》中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看...

34190
来自专栏Seebug漏洞平台

使用 XML 内部实体绕过 Chrome 和 IE 的 XSS 过滤器

来源:BypassingXSSFiltersusingXMLInternalEntities 原作者:DavidLitchfield (david@davidl...

415100
来自专栏网络

代理工具shadowProxy之神出鬼没的切换IP地址

前言 在渗透测试过程中,往往会遇到特别“小气”的目标,稍微碰一下就封IP。这种情况下,我们很自然的想到通过网上大量的免费代理进行IP隐匿。 那么问题来了,难道拿...

38580
来自专栏NetCore

Identity Service - 解析微软微服务架构eShopOnContainers(二)

接上一篇,众所周知一个网站的用户登录是非常重要,一站式的登录(SSO)也成了大家讨论的热点。微软在这个Demo中,把登录单独拉了出来,形成了一个Service,...

27450
来自专栏Jed的技术阶梯

HBase Region 自动拆分策略

其中BusyRegionSplitPolicy是HBase-2.x新增的策略,其他6种在HBase-1.2.x中也可以使用。

64910
来自专栏互联网杂技

SpringBoot ( 十二 ) :SpringBoot 如何测试打包部署

有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试...

10220
来自专栏Danny的专栏

【MyEclipse】——MyEclipse10配置Tomcat7+Web项目发布

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1.4K30
来自专栏魏艾斯博客www.vpsss.net

如何创建.htaccess 文件

关于.htaccess 文件,一般用于虚拟主机中,使用 VPS 建站的可以忽略了。对于使用虚拟主机建站的朋友来说.htaccess 文件可以用作伪静态化设置和 ...

47280
来自专栏自由而无用的灵魂的碎碎念

用IE打开Reporting Service时提示权限不足的解决方法

在IE中打开http://localhost/ReportServer时,经常提示“为用户“*”授予的权限不足,无法执行此操作。 (rsAccessDenied...

14840

扫码关注云+社区

领取腾讯云代金券