Linux下文件的三个时间介绍

Linux文件的三个时间的介绍

Linux下文件的三个时间

(1)modification time(mtime):内容修改时间
这里的修改时间指的是文件的内容发生变化而更新的时间。
(2)change time(ctime):状态修改时间
这里的修改时间值得是文件的属性或者权限发生变化,而更新的时间
(3)access time(atime):最后访问的时间
这里的访问时间是指文件被读取而更新的时间

在Linux下,我们可以用以下命令来查看文件的三个时间

(1)ls -l 获取文件最后一次被修改的时间(modification time -- mtime);
(2)ls -lu 获取文件最后一次访问的时间(change time -- ctime);
(3)ls -lc 获取文件最有一次状态的改变时间(access time -- atime)。
(4)stat命令可以同时查看三个时间

例子1

#直接touch一个file文件并查看时间
ydqun@VM-0-9-ubuntu file_time % touch file ; stat file                                                                [0]
  File: file
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 1970232     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   ydqun)   Gid: (    0/    root)
Access: 2021-01-19 22:57:05.224906605 +0800
Modify: 2021-01-19 22:57:05.224906605 +0800
Change: 2021-01-19 22:57:05.224906605 +0800
 Birth: -

结论:

直接touch创建一个文件时,文件的三个时间都是一致的(废话!)。

例子2

#修改file的权限
ydqun@VM-0-9-ubuntu file_time % chmod 777 file ; stat file                                                            [0]
  File: file
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 1970232     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/   ydqun)   Gid: (    0/    root)
Access: 2021-01-19 22:57:05.224906605 +0800
Modify: 2021-01-19 22:57:05.224906605 +0800
Change: 2021-01-19 22:58:36.764911639 +0800
 Birth: -

结论:

修改一个文件的权限,该文件的change time(ctime)被更新了。

例子3

#把标准输出重定向到文件,去修改文件的内容
ydqun@VM-0-9-ubuntu file_time % echo 'Hello world!' > file ; stat file                                              [130]
  File: file
  Size: 13              Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 1970232     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/   ydqun)   Gid: (    0/    root)
Access: 2021-01-19 22:57:05.224906605 +0800
Modify: 2021-01-19 23:01:27.900920969 +0800
Change: 2021-01-19 23:01:27.900920969 +0800
 Birth: -

结论:

当文件的内容被修改时,文件的modification time(mtime)被更新了,而且由于文件的大小发现了变化(文件的大小也是文件的属性之一),

所以文件的change time(ctime)也被更新了。

例子4

#用cat去读取一个文件的内容
ydqun@VM-0-9-ubuntu file_time % cat file ; stat file                                                                  [0]
Hello world!
  File: file
  Size: 13              Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 1970232     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/   ydqun)   Gid: (    0/    root)
Access: 2021-01-19 23:01:32.768921233 +0800
Modify: 2021-01-19 23:01:27.900920969 +0800
Change: 2021-01-19 23:01:27.900920969 +0800
 Birth: -

结论:

当一个文件被读取时,它的access time就被更新了。

总结

1.当我们要了解一个文件有没有被修改过,我们可以去查看该文件的Modification time(mtime)。
2.当我们要了解一个文件有没有被查看过,我们可以去查看该文件的access time(atime)。
3.当我们要了解一个文件的权限或者属性有没有被修改过,我们可以去查看该文件的change time(ctime)。

原文地址:https://www.cnblogs.com/ydqblogs/p/14300625.html