Linux中的 atime mtime ctime
2018-06-12 本文已影响3人
学习编程王同学
查看一个文件的i节点内容:
$ stat a.txt
File: 'a.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 1710819 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ tom) Gid: ( 1001/ tom)
Access: 2018-05-31 16:42:13.792121737 +0800
Modify: 2018-05-31 16:42:13.792121737 +0800
Change: 2018-05-31 16:42:13.792121737 +0800
Birth: -
这里关注其中的三行:
Access: 2018-05-31 16:42:13.792121737 +0800
Modify: 2018-05-31 16:42:13.792121737 +0800
Change: 2018-05-31 16:42:13.792121737 +0800
这是三个时间,这三个时间的标签分别是Access
(也叫做atime)、Modify
(也叫做mtime)和Change
(也叫做ctime)。那么这三个时间分别代表什么意义呢?
- atime:访问时间。表示文件最后被访问的时间。
- mtime:修改时间。表示文件内容最后被修改的时间。
- ctime:更改时间:表示文件最后被改变的时间,包括文件状态(比如权限、所有者等)和文件内容的改变。
下面是一个例子。
首先,创建一个文件并查看其i节点内容:
$ touch now.txt
$ stat now.txt
File: 'now.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 1710866 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ tom) Gid: ( 1001/ tom)
Access: 2018-06-12 12:15:15.971914864 +0800
Modify: 2018-06-12 12:15:15.971914864 +0800
Change: 2018-06-12 12:15:15.971914864 +0800
Birth: -
可以看到,这三个时间在文件创建的时候是相同的。
接下来,使用cat
显示文件内容(现在文件内容是空的),并查看i节点内容:
$ cat now.txt
$ stat now.txt
File: 'now.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 1710866 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ tom) Gid: ( 1001/ tom)
Access: 2018-06-12 12:17:33.223919004 +0800
Modify: 2018-06-12 12:15:15.971914864 +0800
Change: 2018-06-12 12:15:15.971914864 +0800
Birth: -
在显示文件(文件被访问)之后,仅有atime更新。
给文件添加内容并查看i节点内容:
$ echo "Hello, World!" > now.txt
$ stat now.txt
File: 'now.txt'
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1710866 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ tom) Gid: ( 1001/ tom)
Access: 2018-06-12 12:17:33.223919004 +0800
Modify: 2018-06-12 12:18:57.627921500 +0800
Change: 2018-06-12 12:18:57.627921500 +0800
Birth: -
mtime和ctime得到了更新,因为文件的内容变化了。如果使用vim
等编辑器更改文件内容,atime也会得到更新。
最后,修改文件权限看看:
$ chmod a+x now.txt
$ stat now.txt
File: 'now.txt'
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1710866 Links: 1
Access: (0775/-rwxrwxr-x) Uid: ( 1001/ tom) Gid: ( 1001/ tom)
Access: 2018-06-12 12:17:33.223919004 +0800
Modify: 2018-06-12 12:18:57.627921500 +0800
Change: 2018-06-12 12:21:11.595925387 +0800
Birth: -
仅有ctime得到了更新。