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)。