说明:

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

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

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

查看:

1.先建立文件filetime.txt

# date && echo "this is file be used test time of file" >filetime.txt && ll --full-time filetime.txt

Tue Aug 4 15:13:44 HKT 2009

-rw-r--r-- 1 root root 39 2009-08-04 15:13:44.000000000 +0800 filetime.txt

2.stat filename.txt来查看文件

# stat filetime.txt

File: `filetime.txt'

Size: 39 Blocks: 8 IO Block: 4096 Regular File

Device: 802h/2050d Inode: 17 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2009-08-04 15:13:44.000000000 +0800

Modify: 2009-08-04 15:13:44.000000000 +0800

Change: 2009-08-04 15:13:44.000000000 +0800

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

atime,mtime,ctime说明

atime=Access //访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间。ls -lu filename也可以列出文件的atime(最后访问时间)

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

ctime=Change //改变时间,状态改动时间,是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。ls -lc filename会列出文件的ctime(最后更改时间)

附录:

在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就是文件的创建时间。

如:

# / sbin/mkfs -t ext3 /dev/ram10

# mount -t ext3 -o noatime /dev/loop0 /mnt/foo

# mount

/dev/ram10 on /mnt/foo type ext3 (rw,noatime)

# cd /mnt/foo

# touch filetime1.txt

# stat filetime1.txt

File: `filetime1.txt’

Size: 0 Blocks: 0 IO Block: 4096 Regular File

Device: 10ah/266d Inode: 12 Links: 1

Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2009-08-04 20:51:32.000000000 +0800

Modify: 2009-08-04 20:51:32.000000000 +0800

Change: 2009-08-04 20:51:32.000000000 +0800

# echo foo.ok >> filetime1.txt

[root@logs-bak foo]# stat filetime1.txt

File: `filetime1.txt’

Size: 14 Blocks: 2 IO Block: 4096 Regular File

Device: 10ah/266d Inode: 12 Links: 1

Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2009-08-04 20:51:32.000000000 +0800

Modify: 2009-08-04 20:53:27.000000000 +0800

Change: 2009-08-04 20:53:27.000000000 +0800

# cat filetime1.txt

foo.ok

#stat filetime1.txt

File: `filetime1.txt’

Size: 14 Blocks: 2 IO Block: 4096 Regular File

Device: 10ah/266d Inode: 12 Links: 1

Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2009-08-04 20:51:32.000000000 +0800

Modify: 2009-08-04 20:53:27.000000000 +0800

Change: 2009-08-04 20:53:27.000000000 +0800

# 通过以上实验可以看出文件的access time 是不变的。

接着向下多测试一下.

# vi filetime1.txt

# stat filetime1.txt

File: `filetime1.txt’

Size: 23 Blocks: 2 IO Block: 4096 Regular File

Device: 10ah/266d Inode: 14 Links: 1

Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2009-08-04 20:55:05.000000000 +0800

Modify: 2009-08-04 20:55:05.000000000 +0800

Change: 2009-08-04 20:55:05.000000000 +0800

# chmod 777 filetime1.txt

# stat filetime1.txt

File: `filetime1.txt’

Size: 23 Blocks: 2 IO Block: 4096 Regular File

Device: 10ah/266d Inode: 14 Links: 1

Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2009-08-04 20:55:05.000000000 +0800

Modify: 2009-08-04 20:55:05.000000000 +0800

Change: 2009-08-04 20:57:36.000000000 +0800

可见,chmod后,Ctime的变化。

##############################################################

另外,从kernel2.6.29开,还默认集成了一个relatime的属性。可能是因为在文件读操作很频繁的系统

中,atime更新所带来的开销很大,所以很多SA都在挂装文件系统的时候使用noatime属性来停止更新atime。但是有些程序需要根据atime进行一些判断和操作,所以Linux就推出了一个relatime特性。

使 用这个特性来挂装文件系统后,只有当mtime比atime更新的时候,才会更新atime。事实上,这个时候atime和mtime已经是同一个东西 了。所以这个选项就是为了实现对atime的兼容才推出的。并不是一个新的时间属性。使用方法就是通过mount -o relatime /dir来挂装目录。

Post Views:

2

linux ctime 格式化,atime,mtime,ctime说明相关推荐

  1. linux文件的三个时间atime,mtime,ctime以及查找和修改方法

    atime是指access time,访问时间,即文件被读取或者执行的时间: mtime即modify time,指文件内容被修改的时间: ctime即change time文件状态改变时间. 操作 ...

  2. LInux中的atime、mtime和ctime

    文章目录 一 定义 二 mtime和ctime的比较 三 atime在访问文件后并不一定会修改 四 相关操作命令对三个时间的影响 一 定义 缩写 全称 释义 atime Access Time 文件最 ...

  3. find ctime atime mtime

    find ctime atime mtime Linux下的find命令在目录结构中搜索文件,并执行指定的操作.linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大, ...

  4. atime、ctime 和 mtime区别

    文件的 Access time,atime 是在读取文件或者执行文件时更改的. 文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的. 文件的 Create time ...

  5. linux 如何格式化ext2,Linux的Ext2文件系统(InodeBlock)详解

    前述:Linux系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不可以太小,太大会导致磁盘容量的浪费,太小会导致产生的文件无法存储的问题.在Linux里面文件是由两部分数据组 ...

  6. 250g硬盘linux分区,linux分区格式化命令使用方法

    linux分区格式化命令使用方法 首先使用root权限登陆进入linux操作界面 使用fdisk -l 参数查看设备名跟设备状态 类似如下 : [root@ecofe2 /]# fdisk -l Di ...

  7. Linux vi格式化文件命令

    Linux vi格式化文件命令 全篇格式化: 命令模式下 gg --到文件开头 = --格式化 G --到文件末尾 部分格式化可以用: 在命令模式下,按 v 进入visual模式. 然后用上下箭头选中 ...

  8. linux 机器格式化_为什么机器人应该为我们格式化代码

    linux 机器格式化 by Artem Sapegin 通过Artem Sapegin 为什么机器人应该为我们格式化代码 (Why robots should format our code for ...

  9. linux磁盘格式化

                 linux分区.格式化配置<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office: ...

最新文章

  1. 文本特征选择 java代码_文本分类入门(十)特征选择算法之开方检验
  2. Python 数据处理函数 round()、int()、floor()、ceil()的用法
  3. 如何用python批量下载数据_使用Python批量下载数据
  4. wifi rssi 计算 距离_WiFi和WLAN是一样的?真相在这里
  5. 关于包装java_[java初探09]__关于java的包装类
  6. C语言面试-指针和引用的使用场景?
  7. VC6.0 控件Radio Button的使用
  8. easyui学习笔记一:主要结构
  9. 揭秘 DockerCon 重量级演讲嘉宾(四)
  10. 网商微信实名认证FAQ
  11. Java并发编程的艺术笔记(四)——ThreadLocal的使用
  12. 用Python快速实现YOLO目标检测
  13. 我不理解表现与数据分离。。。
  14. 写给小白的云计算入门科普
  15. 用java生成word文档(转载)
  16. 第十三章 外星人来了
  17. C语言局域网对战游戏,局域网聊天的程序(C++版)
  18. 【实测有效】“解决国内访问s3.amazonaws.com下载文件非常缓慢的问题”
  19. 2021年麻城一中高考成绩查询,麻城一中2020年高考成绩 麻城一中2020年高考喜报...
  20. 【Deno】极简入门

热门文章

  1. docker-Error: No such container
  2. 天池数据分析达人赛3:汽车产品聚类(含代码)
  3. 大学生可以做考研副业赚钱吗?
  4. Ventuz学习笔记/20210519
  5. 关于SD净价的计算的机理
  6. WiFi遥控小车(一):基于wicam模块的小车
  7. C# Settings.settings的基本使用
  8. node检测端口是否被占用
  9. Unable to parse template Class Error message: Selected class file name 'HelloController.java' mapp
  10. JS中的全等和不全等、等于和不等于