1. 三个时间戳的区别
在 Linux 文件系统中,每个文件有三个重要的时间属性:
-
atime (Access Time) 文件最近一次被访问(读取)的时间。 例:用
cat、less打开文件,系统会更新 atime。 -
mtime (Modify Time) 文件内容最后一次修改的时间。 例:用
vim修改文件内容后保存,mtime 就会更新。 -
ctime (Change Time) 文件状态(元数据)最后一次修改的时间。 包括:权限、属主、链接数、大小变化等。注意 ctime ≠ create time,它不是“创建时间”!
2. 在 find 命令中的用法
语法:
find <路径> -atime n find <路径> -mtime n find <路径> -ctime n
其中 n 为数字,其含义为:
-
n:恰好 n 天 前,表示 n*24 小时 ~ (n+1)*24 小时之间修改过的文件。 -
+n:大于 n 天(更早之前) -
-n:小于 n 天(最近 n 天内)
⚠️ 补充说明:
-
mtime和ctime容易被搞混:修改内容 是 mtime;修改权限/属主/链接数等 是 ctime。 -
ctime并不是“创建时间”(create),Linux 文件系统默认 不存储文件创建时间(除非用 ext4 的birth字段或 xfs/btrfs 支持)。
3. 举例说明
查找当前目录下查找最近 7 天内访问过的文件
find . -atime -7
查找当前目录下查找 30 天前修改过内容的文件
find . -mtime +30
查找当前目录下查找 1 天前(准确)修改过的文件
find . -mtime 1
查找当前目录下最近 2 天内属性(权限/属主)有变动的文件
find . -ctime -2
| 时间类型 | 全称 | 触发条件 | 示例操作 | find 示例 |
|---|---|---|---|---|
| atime | Access Time | 文件被访问(读取)时更新 | cat file / less file / grep file |
# 最近 7 天内被访问过 |
| mtime | Modify Time | 文件内容被修改时更新 | echo "hi" >> file / vim file |
# 30 天前修改过内容 |
| ctime | Change Time | 文件元数据或内容变化时更新(权限、属主、链接数、大小) | chmod 644 file / chown user file / 删除文件 |
# 最近 2 天内状态被改变 |
1594

被折叠的 条评论
为什么被折叠?



