Linux下文件的三个时间意义及用法

时间:2022-12-01 16:43:53

Linux下文件的三个时间参数:

(1)modification time(mtime):内容修改时间
        这里的修改时间指的是文件的内容发生变化,而更新的时间。

(2)change time(ctime):状态修改时间
        这里的修改时间指的是文件的属性或者权限发生变化,而更新的时间。

(3)access time(atime):最后访问时间
        这里的访问时间是指文件被读取,而更新的时间。

在Linux下操作命令分别为:

ls -l    获取文件最后一次内容修改的时间(modification time(mtime))

ls -lu   获取文件最后一次访问的时间(change time(ctime))

ls -lc   获取文件最后一次状态的改变时间(access time(atime))

在Linux下文件没有创建时间这个概念,若文件从创建后不曾修改过则可认为 创建时间=修改时间

下面通过事例验证:

事例1:

# 直接touch一个test文件并查看时间

[root@localhost ~]# touch test; stat test
File: ‘test’
Size: Blocks: IO Block: regular empty file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::38.050000000 +
Modify: -- ::38.050000000 +
Change: -- ::38.050000000 +
Birth: -

总结:
    当新创建一个文件时,这个文件的最后访问时间、最后内容修改时间、最后状态更新时间都是一致的。

事例2:

# 修改该文件的权限属性状态:

[root@localhost ~]# chmod  test ; stat test
File: ‘test’
Size: Blocks: IO Block: regular empty file
Device: fd00h/64768d Inode: Links:
Access: (/-rwxrwxrwx) Uid: ( / root) Gid: ( / root)
Access: -- ::38.050000000 +
Modify: -- ::38.050000000 +
Change: -- ::27.816000000 +
Birth: -

总结:
    修改一个文件的权限状态信息,只会更新这个文件的最后状态修改时间。

事例3:

# 修改该文件的内容信息:

[root@localhost ~]# echo hello > test ; stat test
File: ‘test’
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rwxrwxrwx) Uid: ( / root) Gid: ( / root)
Access: -- ::38.050000000 +
Modify: -- ::59.638000000 +
Change: -- ::59.638000000 +
Birth: -

总结:
    对比事例2,这里最后状态时间、最后内容改变时间都被更新了。 当修改一个文件时,文件的Modify、Change会被更新。

事例4:

# 查看该文件

[root@localhost ~]# cat test ; stat test
hello File: ‘test’
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rwxrwxrwx) Uid: ( / root) Gid: ( / root)
Access: -- ::03.470000000 +
Modify: -- ::29.717000000 +
Change: -- ::29.717000000 +
Birth: -

总结:
    当查看文件时,文件的 Access time 会更新。

linux文件状态的三个时间总结如下:

当需要了解这个文件有没有被修改过 -  Modify Time
当需要了解这个文件最后被查看的时间 - Access Time
当需要了解这个文件权限最后变动的时间 - Change Time

扩展:

查找1天前未更新内容的文件并删除

find . -type f -mtime + | xargs rm -rf