在windows下,一个文件有:创建时间、修改时间、访问时间。

而在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间。





两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后,
状态就没有改动过,那么状态改动时间=建立时间;如果文件建立后,没有被读取过,那么访问时间=建立时间,因为不好判断文件是否被改过、读过、其状态是否
变过,所以判断文件的建立时间基本上能为不可能。

 

如何查一个文件的三个时间呢?

先用下面的命令来建立一个文件

echo "new file" > file.txt  
[root@CDNTest69 wm]# stat file.txt
File: `file.txt'
Size: 9    Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d   Inode: 5255731 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-08-22 17:41:15.058576627 +0800
Modify: 2014-08-22 17:41:15.058576627 +0800
Change: 2014-08-22 17:41:15.058576627 +0800

说明:Access访问时间。Modify修改时间。Change状态改动时间。可以stat *查看这个目录所有文件的状态。

ctime=change time

atime=access time

mtime=modifiy time

因为这是一个新的文件(filetime.txt),没做过内容、属性的更改,也没读过这个文件,所以三者(访问时间、修改时间、状态改动时间)的时间是一致的,这时文件的修改时间与这三个时间是一样的,是没有疑问的。

 

1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令(这里注意,有时候输入vi也会修改访问时间,因为也需要访问内容)。ls、stat命令都不会修改文件的访问时间。

2、修改时间,修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。


3、状态改动时间。是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。


 

另个除了可以通过stat来查看文件的mtime,ctime,atime等属性,也可以通过ls命令来查看,具体如下:

ls -lc filename 列出文件的 ctime (最后更改时间)

ls -lu filename 列出文件的 atime(最后存取时间)

ls -l filename 列出文件的 mtime (最后修改时间)

 

Linux
stat函数中,用st_atime表示文件数据最近的存取时间(last accessed
time);用st_mtime表示文件数据最近的修改时间(last modified
time);使用st_ctime表示文件i节点数据最近的修改时间(last i-node's status changed time)。

 

 字段           说明                  例子           ls(-l)

 st_atime  文件数据的最后存取时间       read            -u

 st_mtime  文件数据的最后修改时间       write           缺省

 st_ctime  文件数据的最后更改时间       chown,chmod     -c

 

 

linux系统中,系统把文件内容数据与i节点数据是分别存放的,i节点数据存放了文件权限与文件属主之类的数据。

 

另外,可以格式化输出文件的三种时间,如:

find . -name file -printf "%AY-%Am-%Ad %AH:%AM:%AS"

find . -name file -printf "%TY-%Tm-%Td %TH:%TM:%TS"

find . -name file -printf "%CY-%Cm-%Cd %CH:%CM:%CS"

 

linux的ctime代表的是文件修改时间,如果文件被修改过就很难知道文件的创建时间,在某些特殊情况下,需要查看文件的创建时间,正常情况下查看文件的ctime是无法实现的。可以使用一个变通的方法来实现保留文件创建时间,但是同时也会牺牲一些其它特性。

 

可以在mount文件的时候使用参数-o noatime,来把系统更新atime的特性关闭。使用了noatime参数挂载后,在文件被修改后文件的atime是不会被改变的,使用stat查看到的atime就是文件的创建时间。

如:

[root@CDNTest69 wm]# stat file.txt
File: `file.txt'
Size: 9 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 5255731 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-08-22 17:41:15.058576627 +0800
Modify: 2014-08-22 17:41:15.058576627 +0800
Change: 2014-08-22 17:41:15.058576627 +0800
[root@CDNTest69 wm]# cat file.txt
new file
[root@CDNTest69 wm]# stat file.txt
File: `file.txt'
Size: 9 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 5255731 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-08-22 17:44:31.512576521 +0800
Modify: 2014-08-22 17:41:15.058576627 +0800
Change: 2014-08-22 17:41:15.058576627 +0800
[root@CDNTest69 wm]#

获取文件名,文件大小,生成日期

[root@CDNTest69 wm]# ls -ltr --full-time | grep -v total
-rw-r--r-- 1 root root 1394 2014-08-18 20:38:31.548634852 +0800 epollserver.c
-rw-r--r-- 1 root root 4651 2014-08-18 21:54:20.000000000 +0800 a.cc
-rw-r--r-- 1 root root 123 2014-08-18 22:00:12.734631459 +0800 utils.h
-rw-r--r-- 1 root root 1699 2014-08-18 22:00:47.147630750 +0800 local.h
-rw-r--r-- 1 root root 24678 2014-08-18 22:01:12.171631554 +0800 server.cpp
-rw-r--r-- 1 root root 1399 2014-08-18 22:01:27.522631532 +0800 tester.cpp
-rw-r--r-- 1 root root 43637 2014-08-18 22:07:43.033631333 +0800 client.cpp
-rw-r--r-- 1 root root 9 2014-08-22 17:41:15.058576627 +0800 file.txt
[root@CDNTest69 wm]# ls -ltr --full-time | grep -v total | awk -F " " '{printf "%-40s %-10d %-10s %-20s\n",$9,$5,$6,$7}'
epollserver.c 1394 2014-08-18 20:38:31.548634852
a.cc 4651 2014-08-18 21:54:20.000000000
utils.h 123 2014-08-18 22:00:12.734631459
local.h 1699 2014-08-18 22:00:47.147630750
server.cpp 24678 2014-08-18 22:01:12.171631554
tester.cpp 1399 2014-08-18 22:01:27.522631532
client.cpp 43637 2014-08-18 22:07:43.033631333
file.txt 9 2014-08-22 17:41:15.058576627
[root@CDNTest69 wm]#

转自:

http://blog.csdn.net/wmengbeyond/article/details/38759953

Linux下文件的三种时间标记:访问时间、修改时间、状态改动时间 (转载)的更多相关文章

  1. Linux下文件的三种时间戳

    Linux下文件的三种时间标记 三种时间对应关系表 column column column 访问时间 Access atime 修改时间 Modify mtime 状态改动时间 Change cti ...

  2. Linux下文件的三种时间标记(atime ctime mtime)

    在windows下,一个文件有:创建时间.修改时间.访问时间. 在Linux下,一个文件有:状态改动时间.修改时间.访问时间. 1)查看文件(或文件夹)的三种时间标记 (stat 命令) Access ...

  3. Linux下文件的三个时间意义及用法

    Linux下文件的三个时间参数: (1)modification time(mtime):内容修改时间        这里的修改时间指的是文件的内容发生变化,而更新的时间. (2)change tim ...

  4. linux中文件的三种time(atime,mtime,ctime)

    linux下文件有3个时间的,分别是atime,mtime,ctime.有些博友对这3个时间还是比较迷茫和困惑的,我整理了下,写下来希望对博友们有所帮助. 1 这三个time的含义 简名 全名 中文名 ...

  5. Linux下文件的三个时间(Atime,Mtime,Ctime)

    文件的三个时间 我们已经很熟悉windows系统了,那么我们在windows下新建一个文件,我们知道它在保存的时候肯定是会保存一下文件的创建时间之类的信息的,那么我们来看看windows下的一个文件保 ...

  6. Linux下SVN的三种备份方式

    原文链接:http://blog.csdn.net/windone0109/article/details/4040772 (本文例子基于FreeBSD/Linux实现,windows环境请自己做出相 ...

  7. Linux 下系统调用的三种方法

    系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU.磁盘.打印机等)进行交互提供的一组接口.当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系 ...

  8. Linux下文件的七种类型

    文件属性 1. 本章引言 上一章通过学习文件io,知道了如何使用文件io来打开文件,对文件进行读写等操作,那么我们这一章将换一个角度,专门围绕文件属性进行相关的讨论. 1.1 什么是文件属性? 我们通 ...

  9. linux下主流的三种远程技术

    远程登录操作对于租用服务器的用户来说都不陌生.特别是租用国外服务器的用户来说,更是家常便饭.通过远程登录操作,即使我们人在深圳,也能无差别的操作远在美国的服务器.而对于linux系统下的服务器,目前主 ...

随机推荐

  1. 使用Eclipse的基本配置

    因本人 IntelliJ IDEA 正版授权前些日子已到期,最近开始使用 Eclipse .体验开发了一阵子,觉得除了在界面美观与前端编辑的操作上 Eclipse 与 IDEA 差距还比较大以外,其他 ...

  2. PHP中的文件系统函数(一)

    从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数.其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了. 文件路径 ...

  3. Java基础系列(1)- JDK、JRE、JVM

    Java三大版本(Write Once:Run Anywhere) JavaSE:标准版 JavaME:嵌入式开发 JavaEE:E企业级开发 JDK.JRE.JVM JDK是开发工具包 JRE是编译 ...

  4. 4.深入TiDB:执行计划执行过程详解

    本文基于 TiDB release-5.1进行分析,需要用到 Go 1.16以后的版本 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/ ...

  5. 『GoLang』fmt包的使用

    目录 1. fmt 包初识 2. 格式化 verb 应用 2.1 通用 2.2 布尔值 2.3 整数 2.4 浮点数与复数 2.5 字符串和 []byte 2.6 指针 2.7 其他 flag 2.8 ...

  6. Gitee自动化部署python脚本

    一.前期准备 1.1 安装环境 1.安装python3 2.打开命令行安装selenium pip install selenium 二.python代码 2.1 源码 #!/usr/bin/pyth ...

  7. 安装SpaCy出现报错:requests.exceptions.ConnectionError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443):

    内含安装步骤及报错解决:https://www.cnblogs.com/xiaolan-Lin/p/13286885.html

  8. 左手IRR,右手NPV,掌握发家致富道路密码

    智能手机的普及让世界成为了我们指尖下的方寸之地. 在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近.投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容. 但是落脚到很小的例子之 ...

  9. 洛谷3628 APIO2010特别行动队(斜率优化)

    考虑最普通的\(dp\) \[dp[i]=max(dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c \] qwq 由于演算纸扔掉了 qwq 所以直接给出最后的 ...

  10. 洛谷5038 [SCOI2012]奇怪的游戏(二分+网络流+判断奇偶)

    寒假的时候就听过这个题.但是一直没有写. qwq 首先,我们发现题目中的图是个网格图,然后每次可以将相邻两个格子加一. 很容易就想到是黑白染色.那么每次操作,就相当于同时操作一个白点,一个黑点. 我们 ...