find 按时间查找

查找两天前修改过的文件:
find . -type f -mtime -2

查找3天内修改过的文件:
find -ctime -3

find命令使用超过6天,空文件独立查询命令:
find /data/backup -ctime +6 -exec rm -f {} \; 删除/data/backup目录下修改时间超过6天的文件。
find /data/backup -type d -empty -exec rmdir {} \; >/dev/null 2>&1 删除/data/backup目录下空的文件夹,同时输出正确和错误信息到空。

查找超过6天且是空文件的find命令:
find ./ -type d -empty -ctime +6

按修改时间来查找文件,要用到选项-mtime:
find /home/admin -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件
find /home/admin -name *.txt -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件名为.txt结尾的文件

find 按文件修改时间查找文件
---(+n)----------|----------(n)----------|----------(-n)---
(n+1)*24H前| (n+1)*24H~n*24H间 |n*24H内

-ctime -n 查找距现在 n*24H 内修改过的文件
-ctime n 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件
-ctime +n 查找距现在 (n+1)*24H 前修改过的文件

[a|c|m]min [最后访问|最后状态修改|最后内容修改]min
[a|c|m]time [最后访问|最后状态修改|最后内容修改]time

linux 文件的三种时间(以 find 为例):
atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;
ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;
mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.

注意:
linux 里是不会记录文件的创建时间的,除非这个文件自创建以来没有发生改变,那么它的创建时间就是它的最后一次修改时间。
#ls -lt /home/admin # 按修改时间顺序查看
#ls -lut /home/admin # 按访问时间顺序查看
<think>嗯,用户问的是关于find命令按照时间查找文件的用法。首先,我得回忆一下find的各种时间选项,比如访问时间、修改时间、状态变更时间。可能需要解释清楚-atime、-mtime、-ctime的区别。然后,用户可能想知道具体的时间单位是天还是分钟,这时候要提到-minute和-timeunit的不同。另外,示例很重要,比如如何查找7天前修改的文件,或者最近24小时内访问过的文件。可能还需要提醒用户关于时间的计算方式,比如+7表示超过7天,-7表示7天以内。还要注意是否有权限问题,以及不同系统之间的差异,比如macOS和Linux的find可能有不同选项。最后,是否需要提到组合条件,比如同时按时间和文件名查找?总之,结构要清晰,先介绍基本参数,再给例子,最后注意事项。确保用户能一步步理解和应用这些命令。</think>`find` 命令时间查找功能非常实用,主要通过以下时间参数实现精准筛选(注意所有时间参数均以 **24小时** 为一天计算): --- ### **一、核心时间参数** | 参数 | 全称 | 作用 | 时间单位 | |------|------|------|---------| | `-amin` | Access MINutes | 文件 **访问时间** | 分钟 | | `-mmin` | Modification MINutes | 文件 **内容修改时间** | 分钟 | | `-cmin` | Change MINutes | 文件 **元数据变更时间** (如权限、所有权) | 分钟 | | `-atime` | Access TIME | 文件 **访问时间** | 天 | | `-mtime` | Modification TIME | 文件 **内容修改时间** | 天 | | `-ctime` | Change TIME | 文件 **元数据变更时间** | 天 | --- ### **二、时间计算逻辑** | 符号 | 含义 | 示例 | |------|------|-------| | `+n` | **超过** n 个时间单位 | `+7` = 8天前及更早 | | `-n` | **不足** n 个时间单位 | `-7` = 7天以内 | | `n` | **正好** n 个时间单位 | `7` = 第7天到第8天之间 | --- ### **三、实用案例** 1. **查找 24小时内修改过的文件** ```bash find /path -mtime -1 ``` 2. **查找 7天前访问过的日志文件** ```bash find /var/log -name "*.log" -atime +7 ``` 3. **查找 30分钟内权限变更的脚本** ```bash find ~/scripts -type f -cmin -30 ``` 4. **查找 精确5天前创建的备份文件** ```bash find /backups -ctime 5 ``` --- ### **四、高级技巧** 1. **时间范围组合** ```bash find /data -mtime +30 -mtime -90 # 查找30到90天前的文件 ``` 2. **与 `-exec` 联动操作** ```bash find /tmp -atime +7 -exec rm {} \; # 删除7天未访问的临时文件 ``` 3. **时间戳对比(精确到秒)** ```bash find . -newermt "2023-01-01" ! -newermt "2023-02-01" ``` --- ### **五、注意事项** 1. 时间参数值会被自动取整(例如 `-mtime 1.5` 视为 `1`) 2. `-daystart` 参数可将计算基准调整为当日凌晨而非当前时刻 3. macOS 系统需使用 `-Bmin`/`-Btime` 替代部分参数 4. 使用 `stat` 命令可验证文件具体时间属性 > 📌 提示:通过 `find -printf "%p - 最后修改: %TY-%Tm-%Td %TH:%TM\n"` 可输出详细时间信息
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值