首先可以使用stat 命令来查询文件的inode信息,其中包括ctime atime mtime等


1、文件的atime、ctime、mtime时间的理解

文件的 Access time,atime 是在读取文件或者执行文件时,更改的任何对inode的访问都会使此处改变。
文件的Modified time,mtime 是在写入文件时随文件内容的更改而更改的。
文件的 Change time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。mtime的改变必然导致ctime的改变。

1)modification time (mtime,修改时间):这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变,用命令ls -l默认显示的就是这个时间:

2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。相当于ls -l –time=ctime所看到的时间;

3)access time (atime,访问时间):读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。也就是用ls -l –time=atime看到的时间

2、文件夹的atime、ctime、mtime

1)文件夹的 Access time,atime 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls一下就不同了)。
2)文件夹的 Modified time,mtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>的结果发生改变mtime就会被刷新。这里可能有人要争论了:我进入dd这个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了……这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除……这就导致了mtime的改变 ,不信你可以用nano修改文件来试验)。
文件夹的 Change time,ctime 基本同文件的ctime,其体现的是inode的change time。

这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意

使用find命令时,常为其中的atime/ctime/mtime感到困惑,一直没彻底弄个明白,今天仔细看了以上两篇文章,总算有所领悟,总结如下:

1、含义:

文件的 Access time,atime 是在读取文件或者执行文件时更改的;
  文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的;
  文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。

2、文件各种事件标记的显示方法

ls -lc filename         列出文件的 ctime 
  ls -lu filename         列出文件的 atime 
  ls -l filename          列出文件的 mtime

3、某网友的实际试验结果:

修改文件,-mtime 改了, -ctime 也会改.
  访问文件,-atime 改了, -ctime 没变.
  chown, chgrp, chmod,mv, 都会使 -ctime 改变,但不影响 -atime 和-mtime.
  touch 可以改 -mtime and/or -atime,但 touch -a 只改访问时间时,-ctime也改了.
  touch -m 改修改时间时,-ctime当然也改了

改变文件或目录时间命令touch

参数说明

-a :修改atime

-m :修改mtime

-c :仅修改文件的时间(三个时间一起修改),若该文件不存在则不建立新的文件

-d :后面可以接想修改的日期而不用目前的日期,也可以使用 –date=”日期或时间”

-t :后面可以接想修改是时间而不用目前的时间,格式为[YYMMDDhhmm]


“改变时间(change time)”和“修改时间(modification time)”。

当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那?
改变和修改之间的区别在于是改某个组件的标签还是更改它的内容。如果有人说chmod a-w myfile,那么这是一个改变;如果有人说echo foo >> myfile,那么 这是一个修改。改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。[文件的修改时间也叫时间标志(timestamp).]

只要讨论改变时间和修改时间,就不可能不提到“访问时间(accesstime)”.访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,当它的改变时间并没有变化(有关文件的信息没有被改变),它的修改时间也同样如此(文件本身没有被改变)有时,在许多地方改变时间或者“ctime”被错误地写成“创建时间”,包括某些UNIX参考手册。

转载于:https://blog.51cto.com/9678130/1736148

Linux之-atime、ctime、mtime相关推荐

  1. Linux文件atime ctime mtime

    Linux文件atime ctime mtime Linux文件一般来说都具有三个重要的时间 atime:access time ctime: change time mtime: modificat ...

  2. linux ctime 时间戳,Linux时间戳atime ctime mtime区别及相关命令

    首先简单讲一下Linux时间戳atime ctime mtime的概念 atime:Access Time 最后一次访问文件(读取或执行)或目录的时间 mtime:Modofy Time 最后一次修改 ...

  3. Linux之atime,ctime,mtime的区别

    在Linux中有atime,ctime,mtime三个时间属性容易被搞混 简名 全名 中文 作用 atime Access Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Cha ...

  4. mysql unix formtime_linux下find命令-atime,-ctime,-mtime真正含义

    linux下的-atime,-ctime,-mtime含义 我们经常会在论坛或者群里面被问到,在linux或者unix下如何查看某文件的创建日期? 经常又会有人说用find命令加选项-ctime,其实 ...

  5. Find命令搭配atime/ctime/mtime时的日期写法

    find可谓是aix/linux上使用较多的维护用命令,但很多时候需要用到针对时间的搜索.本文主要对find中搭配atime.ctime和mtime的各种参数进行介绍. atime:访问时间(acce ...

  6. Find–atime –ctime –mtime的用法与区别总结

    总结一.区别 atime是指access time,即文件被读取或者执行的时间,修改文件是不会改变access time的.网上很多资料都声称cat.more等读取文件的命令会改变atime,但是我试 ...

  7. Linux下的find指令分析 , atime, ctime, mtime

    linux下的ctime指的是change time,atime指的是access time,mtime指的是modify time(意思是更改时间) mtime和ctime的区别在于,只有修改了文件 ...

  8. [Linux]文件的atime ctime mtime

    与文件有关的时间 访问时间 当读取文件内容时,就会更改这个时间.比如cat指令读取一个文件,这个文件的atime就会改变: 修改时间 这个时间指的是文件内容修改而非文件属性修改的时间.当数据内容被修改 ...

  9. linux缺少文件操作数,linux 文件的atime,ctime,mtime查看与修改

    查看 ls -a默认显示的是修改时间 ls -c / --time=status / --time=ctime显示的是状态修改时间(即权限修改时间) ls -u / --time=use / --ti ...

  10. linux 文件mtime,linux 文件的atime,ctime,mtime查看與修改

    查看 ls -a默認顯示的是修改時間 ls -c / --time=status / --time=ctime顯示的是狀態修改時間(即權限修改時間) ls -u / --time=use / --ti ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续6)
  2. Win7部署基础知识(7):使用Imagex捕获和安装映像
  3. 技术:常见视频会议网络线路介绍
  4. 浅谈O2O产品信息结构化
  5. linux查看服务器网络状态
  6. 关于SVG文件在Firefox中正确显示的研究
  7. 程序员自我修养的4个阶段
  8. 拼多多就知乎不当评论致歉;谷歌员工成立首个工会;MySQL 迁移工具新版发布
  9. linux wait函数头文件_第五十八章、linux中的3种正常结束进程的方式你都了解么...
  10. 1177:奇数单增序列
  11. 【Python】matplotlib.pyplot 常用技巧
  12. 【HDU 5869】Different GCD Subarray Query【区间不同 gcd 个数】
  13. Ubuntu安装eog遇到的坑及解决方案
  14. python嵌入java,java架构如何嵌入python?Java调用Python程序方法
  15. php ci cors,javascript-CORS请求在Safari中不起作用
  16. Vue - 实现图片裁剪功能,并上传到服务器(内置第三方最优秀的裁剪图片组件,上传到服务器功能)干净整洁无 BUG 的示例源码与超详细的注释,兼容任意浏览器
  17. Item Categories
  18. HTML/XML转义字符对照表
  19. IE7、IE6和火狐兼容性问题
  20. Numpy库基础知识与常用方法

热门文章

  1. 发一个成熟好用的电池供电切换电路
  2. HDU2095find your present (2)【hash】
  3. 编程语言-Python2-问题整理
  4. TypeScript - 字符串字面量类型
  5. VMware Vsphere 6.0安装部署 总体部署架构
  6. JavaScript 三种创建对象的方法
  7. Linux sed 批量替换多个文件中的字符串【转载】
  8. Java 类与对象的初始化
  9. sql中update多表处理
  10. 降低站长成本 推荐8个免费或低廉小型建站工具