我爱编程程序员Linux

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)。那么这三个时间分别代表什么意义呢?

下面是一个例子。

首先,创建一个文件并查看其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得到了更新。

上一篇下一篇

猜你喜欢

热点阅读