通过stat命令来理解ctime mtime atime三者之间的区别
是不是对ctime,atime,mtime的含义不是很清楚,而经常混淆呢,下面通过stat的用法来介绍下这三者的区别。
关于stat的用法很简单,主要是用来显示文件或文件系统的状态信息(stat - display file or file system status
)
下面请看实例:
创建一个文件1.t
touch 1.t
查看他的状态信息
关注三个时间以及一个inode信息
我们试一下当修改1.t这个文件时会发生什么?
可以看到inode信息未发生变化,只有mtime和ctime发生了变化,atime没有发生变化,这个很好理解,因为我们没有读取该文件,那我们来读取一下
对比一下,atime发生了变化,好像是文件被读取了才变化!
如果我们给该文件增加可执行权限呢?
只有ctime发生了变化
那么我们删除文件里的内容呢?
atime,ctime和mtime都发生了变化,inode节点也发生了变化。
到这里是否对这三个time有所启发呢?atime是只有当文件被读取时才会发生改变,ctime是changetime,即发生改变时相应的ctime才会变化,例如权限,内容等,mtime则只有在inode节点保持不变的情况下,只要不删除文件,mtime就不会发生变化
那我们对文件名进行改名操作呢?
文件的inode没有发生变化,只有ctime发生了改变,因为文件名改变了,所以ctime也会改变!
最后我们在做一个软硬链连接看下
软连接没有变化
硬连接的ctime发生了变化
那么我们来总结下吧:
Access time(atime):是指取用文件的时间,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容,使用cp命令把该文件(即来源文件)复制成其他文件,或者在这个文件上运用grep sed more less tail head 等命令,凡是读取而不修改文件的操作,都改变文件的Access time. Modify time(mtime):是指修改文件内容的时间,只要文件内容有改动或存盘的操作,就会改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time Change time(ctime):是指文件属性或文件位置改动的时间,如使用chmod,chown,mv指令集使用ln做文件的硬连接,就会改变文件的Change time.
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
- 中文分词之结巴分词~~~附使用场景+demo(net)
- 用微信二维码登录自己的网站
- 2620: [Usaco2012 Mar]Haybale Restacking
- 1671: [Usaco2005 Dec]Knights of Ni 骑士
- 1592: [Usaco2008 Feb]Making the Grade 路面修整
- Mysql 该如何 Entity Framework 数据库迁移 和 如何更好的支持EF.Extended
- 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛
- 高性能替代反射调用的几种方式
- 1596: [Usaco2008 Jan]电话网络
- 1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
- 1647: [Usaco2007 Open]Fliptile 翻格子游戏
- 1295: [SCOI2009]最长距离
- 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解PHP变量传值赋值和引用赋值变量销毁
- Keras 利用sklearn的ROC-AUC建立评价函数详解
- PHP如何防止XSS攻击与XSS攻击原理的讲解
- 如何验证python安装成功
- python三引号如何输入
- Python定义一个函数的方法
- keras 模型参数,模型保存,中间结果输出操作
- python判断是空的实例分享
- keras绘制acc和loss曲线图实例
- 基于Python实现2种反转链表方法代码实例
- Python smtp邮件发送模块用法教程
- Python3基于print打印带颜色字符串
- Python StringIO及BytesIO包使用方法解析
- PHP设计模式之PHP迭代器模式讲解
- 简单实用的PHP文本缓存类实例