三个时间
Linux 的文件属性中有:访问时间(Access Time)、修改时间(Modify Time)、改变时间(Change Time):
- 访问时间(Access Time):对文件进行一次读操作,它的访问时间就“有可能”会被更新。例如 cat 指令查看文件内容。
- 修改时间(Modify Time):对文件内容进行修改操作,它的修改时间就会被更新。例如 vim 指令修改文件内容。
- 改变时间(Change Time):对文件的属性进行修改操作,它的改变时间就会被更新。例如 chown、chmod 修改文件的所有权和文件权限。
stat 指令可以查看文件的时间,还可以列出其他有用的信息:
访问时间
cat、less、more 等指令查看文件内容属于读操作,有可能?修改这个文件的“访问时间”。如下图,创建 hello.c 文件并写入了一些 C 代码,现在文件的访问时间与其他时间都是一致的:
cat 指令查看文件内容,进行了一次读操作,此时文件的“访问时间”被修改了。如上图,现在的 Access Time 是 17:38:01,与上一次的时间相差不到一分钟。
接下来用 more 指令查看文件内容,同样也是进行了一次读操作,但这次的“修改时间”没有被修改,这就是在开头说读操作是“有可能”修改访问时间的情况:
出于性能的考虑,每次访问都更新时间的话,会造成磁盘不停的读写,降低系统吸能,而是达到一定的条件才更新 Access Time。
修改时间
vim 修改文件的内容就会更新文件的“修改时间”,并且也会连着更新文件的“改变时间”、“访问时间”:
所以,写一次文件对文件的时间副作用范围很大,文件所有与时间相关的都被一同更新了。
改变时间
文件的属性包括:文件名、文件扩展名、所有权和文件权限等。我们修改文件的属性之后,文件的“改变时间”也会被更新。如下图,使用 mv 修改文件名称:
除此之外,chown、chomd 等指令都会更新文件的“改变时间”。
实际使用
find 指令查找文件可以添加时间的参数从而减少查找的范围,其中就会利用到以上三种时间作为参数,它们分别是:
- Access Time:atime;
- Modify Time:mtime;
- Change Time:ctime。
假设现在是 2022年9月24日 18:15:00,我需要查找某文件夹下有三天之前被修改的文件,利用 mtime,查找到两个符合条件的文件:
-mtime +3 中的 mtime 表示距离上一次的修改时间,+3 代表修改时间的范围超过 3 天。
标签:文件,Time,ctime,访问,Linux,修改,时间,mtime From: https://www.cnblogs.com/Enziandom/p/16726180.html