Linux 中 ctime,mtime,atime 的区别

文章目录

  • 改变和修改的区别
  • ctime
  • mtime
  • atime
  • 查看文件时间
  • 关于 relatime

改变和修改的区别

改变和修改之间的区别在于是改变文件的属性还是改变文件的内容。如果有人说 chmod a-w myfile(删除所有用户对文件 myfile 的写权限),那么这叫改变;如果有人说 echo foo >> myfile(将文件 foo 的内容追加输出到文件 myfile 中。>> 叫追加输出重定向符号),那么这叫修改。改变是文件的索引节点发生了改变,修改是文本的内容发生了变化。

ctime

change time(也有人说是 status time),改变时间,变更时间,最后一次改变文件的时间。指的是文件的元数据,状态最后被变更的时间。改变文件的元数据,即:属性。例如,更改文件的 inode、权限、所属组等。

ctime 文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变(即inode内容发生改变和Block内容

发生改变时)

ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。

更改文件的内容就一定会更改 mtime 和 ctime,mtime 改变,ctime 一定会改变,但是文件的 ctime 可能会在 mtime 未发生变化时更改,也就是说 ctime 改变,mtime 未必改变。例如,文件的权限更改,但是文件内容没有变化的情况下,ctime 改变,mtime 不改变。

atime、mtime、ctime 都放在 inode 中,若 mtime,atime 修改,inode 就一定改变,既然 inode 改变了,那 ctime 也就跟着要改变了。

mtime

modify time,modified time,modification time,修改时间,最后一次修改文件的时间,指的是文件内容最后被修改的时间。
mtime 是在写入文件时随文件内容的更改而更改。

比如用 vi 编辑时就会被改变。(也就是Block的内容)

atime

access time,访问时间,文件最后一次被访问的时间,或者叫文件最后被读取的时间,因此阅读一个文件会更新它的访问时间

atime 读取文件或者执行文件时会更改。

atime 不一定在访问文件之后被修改,因为使用 ext3 文件系统的时候,如果在 mount(挂载) 的时候使用了 noatime 参数那么就不会更新 atime 的信息。我们知道 atime、mtime、ctime 都放在 inode 中,若 mtime,atime 修改,inode 就一定改变,既然 inode 改变了,那 ctime 也就跟着要改变了。之所以在 mount option 中使用 noatime, 就是不想 file system 做太多的修改,从而改善读取效率。

查看文件时间

(一)使用命令 stat 可以查看文件的所有时间属性,如下所示:

[root@htlwk0001host ~]# stat httpd文件:httpd大小:92        	块:0          IO 块:4096   目录
设备:fd01h/64769d	Inode:34185529    硬链接:5
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-04-23 22:05:47.104315111 +0800 atime
最近更改:2020-08-15 12:39:32.000000000 +0800 mtime
最近改动:2020-08-23 14:15:51.903328888 +0800 ctime
创建时间:-

(二)使用命令 ls 查看文件的时间属性

ls -l file,查看文件修改时间:

[root@htlwk0001host ~]# ls -l install.php
-rw-r--r-- 1 root root 1295 823 2020 install.php

2020年8月23日,这是文件的 mtime。

ls -lc file,查看文件状态改动时间:

[root@htlwk0001host ~]# ls -lc install.php
-rw-r--r-- 1 root root 1295 823 2020 install.php

ls -lu file,查看文件访问时间:

[root@htlwk0001host ~]# ls -lu install.php
-rw-r--r-- 1 root root 1295 823 2020 install.php

ls -l --time=atime,查看文件访问时间:

[root@htlwk0001host ~]# ls -l --time=atime
总用量 1284196
-rw-r--r-- 1 root  root        4023 1227 14:58 4946737_test.dpqyw.com_nginx.zip
-rw-r--r-- 1 root  root       15670 116 13:21 aa4.jpg
-rw-r--r-- 1 root  root        2151 116 13:21 Demo1.class

ls -l --time=ctime 查看文件的改变时间:

[root@htlwk0001host ~]# ls -l --time=ctime
总用量 1284196
-rw-r--r-- 1 root  root        4023 1227 14:58 4946737_test.dpqyw.com_nginx.zip
-rw-r--r-- 1 root  root       15670 116 13:21 aa4.jpg
-rw-r--r-- 1 root  root        2151 116 13:21 Demo1.class
-rw-r--r-- 1 root  root        2227 116 13:21 Demo1.java
drwxr-xr-x 5 root  root          92 823 2020 httpd

关于 relatime

如果每次访问文件都会更新 atime,这是很耗时的,尤其在 web 服务器上,大量用户只是访问 html 页面,完全没有必要修改 atime。从kernel 2.6.29 开始,文件系统默认集成了一个 relatime 的属性,这样就不会每次访问文件时都改变 atime,而是满足一定条件才会更改 atime。

可能是因为在文件读操作很频繁的系统中,atime 更新所带来的开销很大,所以很多 SA(系统管理员)都在挂装文件系统的时候使用noatime 属性来停止更新 atime。但是有些程序需要根据 atime 进行一些判断和操作,所以 Linux 就推出了一个relatime特性。使用这个特性来挂装文件系统后,只有当 mtime 比 atime 更新或者上次访问时间是在 1 天前才会更新 atime。使用方法就是通过 mount -o relatime /dir 来挂装目录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java迭代器删除两个_两个迭代器的故事

java迭代器删除两个当您查看最流行的Java面试问题时,您可能会遇到有关故障快速和故障安全迭代器的问题: 故障快速迭代器和故障安全迭代器之间有什么区别? 简化的答案是: 如果在迭代过程中修改了集合,则快速失败迭代器…

Linux 命令之 stat -- 显示文件的状态信息

文章目录一、命令介绍二、命令语法三、常用选项四、命令示例(一)显示文件的状态信息(二)以简洁方式输出文件的状态信息(三)显示文件所属的文件系统状态信息一、命令介绍 用于显示文件的状态信息。stat命令…

python tkinter滚动条不起作用_Tkinter滚动条不工作

我有一段运行在python3.4上的tkinter代码,它是一个放在画布上的带有垂直滚动条的大框架,但是滚动条是灰色的,似乎没有与框架的大小相关联。我使用的代码基本上是:class EntryWindow:def __init__(self, master):self.master mast…

大工17秋《计算机文化基础》在线测试1,大工17秋《组织行为学》在线测试1答案...

大工17秋《组织行为学》在线测试1一、单选题:1.根据气质的分类,较适合做推销工作的人员的气质类型是( )。 (满分:3)A.胆汁质B.多血质C.抑郁质D.黏液质正确答案:[hide]——B——[/hide]2.组织行为学在中观层面所要研究的主要内容是( )。 (满分:3)A.个体心…

java分页中显示更多_早期更多失败– Java 8

java分页中显示更多快速失败或早期失败是一种软件工程概念,旨在通过在不应该发生的事情发生时立即停止执行来防止复杂问题的发生。 在之前的博客文章和演示中,我将详细介绍这种方法的优点,在此博客文章中,我将详细介绍Java 8中该思…

计算机组装与维修单招,单招职二 计算机组装与维修试卷.doc

单招职二 计算机组装与维修试卷高二 计算机组装与维修试卷一、填空题(每空1分,共计30分)1.一个完整的计算机系统是由______________和______________两部分组成的。2.为了更好的为CPU散热,在安装风扇前,先在CPU芯片的顶部均匀地涂抹上一层___…

普通人学python好吗_有人问,普通人学python真的有意义吗?看看大家都是怎么说的吧...

普通人学python有意义吗?现在随着python越来越火,尤其是它成为了人工智能的第一编程语言,还被纳入了中小学的教育中。并且python的应用范围很广泛,可以解决很多专业或非专业的问题。但python真的适合普通人学习吗?我个…

Linux 如何安装程序的源代码软件包/源码程序包/源码包?

文章目录一、安装源码包的三个步骤(一)执行命令 configure,进行配置/检测(二)执行命令 make,编译源码(三)执行命令 make install,安装软件二、源码包安装示例&#xff08…

大文件拆分小文件求top_将文件拆分为流

大文件拆分小文件求top上周,我讨论了类Pattern新的(since 1.8)方法splitAsStream只能根据流的需要从字符序列中读取字符序列,并且不能继续进行模式匹配以创建所有可能的元素并返回它作为流。 这种行为是流的本质,它是支…

如何取消ie.html,IE浏览器安全警告怎么关闭

部分用户在使用IE浏览器打开某些页面的时候,可能会出现一个“安全警告”的对话框,虽然影响不大,但是每次出现都让人很烦闷,这个时候你就可以根据下面的操作去关闭这个功能。自从百度近日开启了HTTPS安全网页功能之后,每…

sql 计算两个小数乘积_数学篇|学会这些数学计算技巧,想不满分都难!

计算是小学数学的基础,四则运算和混合运算是计算要考察的重点。在这里我们总结了小学用到的所有计算定律和简便方法,包括运算定律、运算法则、运算顺序和速算技巧四大部分,帮助小学生牢固掌握数学知识点。先赞后看,收获满满&#…

Linux 如何关闭防火墙

一、使用 System V init 作为初始化系统的 Linux(例如:CentOS 6.x) 关闭防火墙的命令: chkconfig iptables off或 service iptables stop二、使用 systemd 作为初始化系统的 Linux(例如:CentOS 7.x&#…

java学习2018年_Java 20年

java学习2018年二十年前,在苏黎世的一间公寓里发生了两件事。 我的女儿迈出了第一步,一位年轻的博士后研究员(她的父亲)迈出了使用Java的第一步。 很难完全了解当时的Java。 在这些时代,TCL盛行,Java时代与…

html 不透明阴影,CSS_css box-shadow阴影不透明的解决办法,如下面示例: 复制代码代码如 - phpStudy...

如下面示例:复制代码代码如下:phpStudy.shadow{width:120px;height:120px;border:1px solid #ccc;background:#fff;font-size:12px;padding:10px;-moz-box-shadow:0 4px 4px #999;-webkit-box-shadow:0 4px 4px #999;box-shadow:0 4px 4px #999;*filter: progid:DXI…

shell 脚本和 bash 脚本的关系

Shell 分类 常见的 Shell 有 sh、bash、csh、tcsh、ash 等。其中 bash shell 是 Linux 的默认 shell。即 bash 是 shell 的一种。 bash 脚本和 shell 脚本 bash 脚本仅是 shell 脚本的一种,csh 脚本也是 shell 脚本的一种。bash 脚本也可以称为 shell 脚本

mysql两个字段相减_MySQL 中NULL和空值的区别?

作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值。那你知道它们有什么区别吗?学不动了,也不想知道它们有什么区别。大兄弟,不行啊,要面试!前些天我的好…

做好计划事半功倍论文_Picocli 2.0:事半功倍

做好计划事半功倍论文介绍 Picocli是一个单文件命令行解析框架,它使您几乎不需要任何代码即可创建命令行应用程序。 使用Option或Parameters注释应用程序中的字段,picocli将分别使用命令行选项和位置参数填充这些字段。 例如: Command(name …

halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)

*surface_scratch.hdev:extraction of surface scratches via local thresholding and morphological post-processing*dev_close_window()dev_update_window(‘off’)******step: acquire image //获取图片*****read_image(Image,’surface_scratch’) //读入图片名为’surfac…

Linux 脚本文件中开头的#!/bin/bash和#!/bin/sh是什么意思

解释 #!/bin/sh:表示此脚本使用 /bin/sh 来解释执行,#! 是特殊的表示符,其后面跟的是解释此脚本的 shell 的路径。 我们知道 shell 有很多种,例如,bash、csh、sh等,sh 是其中的一种,命令文件所…

srp unity_SRP是骗局

srp unity根据罗伯特马丁 ( Robert Martin)的 《 清洁法 》( Clean Code) ,“ 单一责任原则 ”意味着“一个阶级应该只有一个改变的理由”。 让我们尝试解密这个模糊的语句,看看它如何帮助我们设计更好的面…