文档章节

Linux下文件的mtime/atime/ctime研究

BraveGod
 BraveGod
发布于 2017/08/15 13:43
字数 625
阅读 9
收藏 0

概述

Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime。在linux下无法获取到文件的创建时间,因为根本就没有保存这个时间。 
如果文件创建之后没有被修改过内容,那么mtime就是创建时间;如果文件创建之后没有被获取过内容,那么atime就是创建时间;如果文件创建之后没有改变过状态,那么ctime就是创建时间。但是,但是,但是实际情况下以上的如果是不可能存在的。所以想要直接获取文件的创建时间是几乎不可能的。

查看文件的三个时间

使用stat命令

可以使用stat命令查看文件的三个时间,其中Access指最后访问时间;Modify指最后修改时间;Change指最后状态改变时间。

使用ls命令

ls -l 默认显示文件的Mtime 
ls -lc 显示文件的Ctime 
ls -lu 显示文件的Atime 
命令运行情况如下图所示: 
stat&ls

三个时间何时变化

  • Mtime (modification time ):在写入文件时随文件内容的更改而更改的时间。我们用ls -l看到的时间,就是mtime
  • Ctime (status time):是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的时间。相当于ls -l –time=ctime所看到的时间
  • Atime (access time):读取文件或者执行文件时更改的时间。也就是用ls -l –time=atime看到的时间

注意:关于Atime,在Linux内核为2.6.30之前是严格变化的。但是2.6.30之后出于性能考虑做了一定的改变,Atime不是每次访问文件时都一定改变,具体情况请参考:文件atime未变问题的研究

根据文件的三个时间排序文件夹中的文件

ls -lt 默认按文件的Mtime排序 
ls -ltc 按文件的Ctime排序 
ls -ltu 按文件的Atime排序 
以上三个命令之后都可以加上r表示倒序排列

使用touch命令修改文件时间

请参考:linux 下查看文件修改时间 等 
linux touch 与 linux文件ctime、atime、mtime 
linux下文件的创建时间、访问时间、修改时间和改变时间

本文转载自:http://blog.csdn.net/Rainnnbow/article/details/50998574

BraveGod
粉丝 0
博文 12
码字总数 2301
作品 0
长宁
私信 提问
linux 下 atime mtime ctime

我平时通常同find命令找一些文件时会用到这些参数。那么这三个参数到底有啥区别呢。 文件的 Access time,atime 是在读取文件或者执行文件时更改的。 文件的 Modified time,mtime 是在写入文...

yolks丶
2018/06/29
0
0
理解 atime mtime ctime

首先可以使用stat 命令来查询文件的inode信息,其中包括ctime atime mtime Mtime:文件内容改变,ctime文件的状态改变,如chmod权限等。 调整mtime,ctime会变。调整ctime,mtime不一定变化。...

香胖
2015/12/04
89
0
Linux下find , atime, ctime,mtime

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

科技小能手
2017/11/12
0
0
Linux下的三个时间属性

Linux下的文件有三个时间属性。分别为atime、ctime、mtime。 atime:access time,即文件的最近一次访问时间。 ctime:change time,即文件的最近一次改变时间(这里并非create time创建时间...

cy_lyh
2016/05/15
0
0
find命令,文件后缀名,Linux和Windows互传文件

find命令 whereis命令,是通过预先生成的一个文件列表库(每天定期更新或固定时间段)找与给出的文件名相关的文件,格式为whereis [-bms] [文件名称],-b:只查找二进制文件;-m:只查找帮助文...

风流花生
2017/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 Java语法教程 数组 数组的声明

Java语言支持两种语法格式来定义数组: type[] arrayName; type arrayName[]; 对这两种语法格式而言,通常推荐使用第一种格式,因为第一种格式不仅具有更好的语义,而且具有更好的可读性。对...

老码农的一亩三分地
23分钟前
2
0
OSChina 周三乱弹 —— 公司俩美女离职了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @无形的肖申克 :分享広橋真紀子的单曲《時には昔の話を》: 《時には昔の話を》- 広橋真紀子 手机党少年们想听歌,请使劲儿戳(这里) @小橙子...

小小编辑
今天
1K
17
内存池和tcmalloc的性能比较

最近在测试tcmalloc性能的时候发现了一个现象!!!!就是new似乎很消耗性能!!直接上代码! #include "time.h" #include <gperftools/tcmalloc.h> using namespace std; #define MAX_SIZE......

shzwork
今天
6
0
Protocol Buffers 简介

文档编辑和持续集成状态: 本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html(本 WIKI 中的内容将会与在线发布...

honeymoose
今天
6
0
uniapp + bootstrapvue 移动/PC 一套搞定 (一)配置bootstrapvue

1.准备文件 自己到DCloud官网: http://dcloud.io/ 去下载官方的IDE Hbuilder,新建一个空的uniapp项目即可。 uniapp框架自带优化的vue,我们仅仅需要准备以下三个文件: bootstrap.min.css ...

panyunxing
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部