[关闭]
@a5635268 2015-09-27T11:40:04.000000Z 字数 1329 阅读 1479

【Linux常识篇(3)】文件及文件夹的ctime atime mtime的含义详解

Linux


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

  1. [root@localhost ~]# stat sort2.txt
  2. File: sort2.txt
  3. Size: 32 Blocks: 8 IO Block: 4096 regular file
  4. Device: fd00h/64768d Inode: 74004191 Links: 1
  5. Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
  6. Access: 2015-08-24 11:40:30.788452530 +0800
  7. Modify: 2015-08-24 11:40:23.892452926 +0800
  8. Change: 2015-08-24 11:40:23.892452926 +0800
  9. Birth: -

理解文件的时间类型

Access time,atime

是在读取文件或者执行文件时更改的任何对inode的访问都会使此处改变。

Modified time,mtime

是在写入文件时随文件内容的更改而更改的。

Change time,ctime

是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。mtime的改变必然导致ctime的改变。

理解目录的时间类型

Access time,atime

是在读取文件或者执行文件时更改的(所以我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls一下就不同了)。

Modified time,mtime

在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起目录mtime的改变,换句话说如果ls -f的结果发生改变mtime就会被刷新。这里可能有人要争论了:我进入dd这个文件夹vi了一个文件然后退出,前后ls -f的结果没有改变但是文件夹的mtime发生改变了……这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除……这就导致了mtime的改变 [Auxten:p]不信你可以用nano修改文件来试验)。

Change time,ctime

ctime 基本同文件的ctime,其体现的是inode的change time。

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

  1. /dev/sda3 / ext3 noatime 0 1
  1. ls -lc filename # 列出文件的 ctime (ls -l --time=ctime)
  2. ls -lu filename # 列出文件的 atime (ls -l --time=atime)
  3. ls -l filename # 列出文件的 mtime (ls -l --time=mtime)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注