find命令使用-mtime +0.9筛选23小时文件不生效问题求助
问题根因
find命令的-mtime参数不支持小数输入,所有非整数值都会被直接向下取整为整数,你输入的+0.9会被识别为+0。- 标准
-mtime的匹配逻辑中,+n代表文件修改时间距当前超过n*24小时,因此+0实际匹配的是修改时间满24小时的文件,和你预期的23小时不符,自然无法匹配到目标文件。 - 补充说明:如果你要筛选的是文件创建时间而非修改时间,
-mtime本身只统计文件内容修改时间,也会导致匹配结果不符合预期。
正确实现方案
筛选修改时间满23小时的文件
改用按分钟为单位的-mmin参数即可,23小时换算为1380分钟,命令修改为:
find /test/files -maxdepth 1 -type f -mmin +1380
筛选创建时间满23小时的文件
如果你的find是GNU版本(绝大多数Linux发行版默认携带),可以用-newerBt参数直接指定时间阈值:
find /test/files -maxdepth 1 -type f -newerBt "23 hours ago"
内容的提问来源于stack exchange,提问作者Supreetha
相关产品推荐
相关产品推荐

