初识linux下的三个时间

1.从命令看时间


在linux下,我们可以去查看一个文件的三个时间,比如:对于test.c文件我们可以查看时间,使用命令
stat查看

stat test.c

在这里我们得到以下信息。
这里写图片描述
通过上述信息,我们可以看到有许多信息,接下来,对于这三个时间,我们进行一番讲解。

2.深入理解三个时间


atime(Access time):当我们去访问这个文件,这个时间会被改变,时间就是最后一次我们访问的时间,例如:我们使用cat或者more来读取这个文件。
mtime(Modify time):这里所说的就是文件内容最后的修改时间,不涉及权限。
ctime(Change time):这里所说的改变是改变inode中的信息,比如说文件的权限,所有者,所有组等等信息。

我们首先来创建三个文件
这里写图片描述

在这里,默认情况下,我们所显示出来的时间是系统的mtime。
如果想要查看atime和ctime,可以这样操作:
这里写图片描述

这样,我们就可以通过上述的两条命令来查看ctime和atime。(由于上述文件只进行了创建,所以这个时候,三个文件的三个时间都是一样的)

接下来,我们对三个时间的改变进行验证。

首先我们对first.txt改变mtime,只需要修改文件内容就好了
这里写图片描述

然后我们对于first文件,我们进行操作,cat访问它,查看它的atime

这里写图片描述

所以,可以知道atime的性质了

接下来,验证一下ctime。通过last.txt验证
这里写图片描述

3.关于三个时间之间的联系


其实如果当你把这三种都进行一次测试以后,就会发现一些联系,就是当你去做一些操作,改变了一个时间以后,也可能影响到了另外的时间。

比如说我们这么来看。
这里写图片描述

从这点,我可以这样推测,我在给last.txt当中添加文件的时候,mtime发生了变化,这个时候inode当中的信息size也发生了变化,所以ctime也会改变。

接下来我们测试修改ctime,查看其他是否修改我们测试last.txt
这里写图片描述

最后我们测试修改atime
这里写图片描述

通过上述步骤我们就对三个时间之间的关系有了一些了解。

另外。在练习的步骤中我发现一个问题,就是对于atime当你more一次以后,更新了时间,再次进行more,这个时间是不会更新的。
这里写图片描述
这个行为经过搜素说明是和内核的行为有关,atime更新少,使得性能更加高效。

4.touch命令和三个时间的关系


这个命令就是touch
touch有两个功能,一个是用来创建新的文件,另外的一个功能就是把已经存在的文件时间变为系统当前的时间,把数据原封不动的保存下来。

-a:或--time=atime或--time=access或--time=use  只更改存取时间;
-c:或--no-create  不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify  只更该变动时间;
-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间>  使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。

首先touch -a
这里写图片描述
所以可以看到 -a主要是更改的atime,当atime改变以后,文件的状态发生了改变,所以ctime也发生了改变。

然后是touch -m
这里写图片描述

这个时候的修改了mtime。

为什么ctime都发生了改变呢?
其实这个很好解释当我们对这个文件touch以后无论怎么样,都改变了这个文件的inode的信息,所以,ctime在touch以后是肯定要改变的。

另外的touch -t和touch -d可以改变两个时间到一个指定的时间,只不过格式的要求是不同的。

5.总结


所以最后关于改变时间的总结,
当你读取文件,只会改变atime
当你变更文件内容,会改变ctime和mtime
当你改变了权限与inode的其他相关属性,会改变ctime

我们通过touch可以修改三个时间。只要修改了,ctime是一直会变的。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值