美文网首页我爱编程程序员Linux
Linux中的 atime mtime ctime

Linux中的 atime mtime ctime

作者: 学习编程王同学 | 来源:发表于2018-06-12 12:27 被阅读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得到了更新。

    相关文章

      网友评论

        本文标题:Linux中的 atime mtime ctime

        本文链接:https://www.haomeiwen.com/subject/zzpleftx.html