Linux系统下 find 命令的 time 参数

1. 三个时间戳的区别

在 Linux 文件系统中,每个文件有三个重要的时间属性:

  • atime (Access Time) 文件最近一次被访问(读取)的时间。 例:用 catless 打开文件,系统会更新 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 天内)

⚠️ 补充说明:

  • mtimectime 容易被搞混:修改内容 是 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 示例
atimeAccess Time文件被访问(读取)时更新cat file / less file / grep file

find . -atime -7 

# 最近 7 天内被访问过

mtimeModify Time文件内容被修改时更新echo "hi" >> file / vim file

find . -mtime +30 

# 30 天前修改过内容

ctimeChange Time文件元数据或内容变化时更新(权限、属主、链接数、大小)chmod 644 file / chown user file / 删除文件

find . -ctime -2 

# 最近 2 天内状态被改变

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值