You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何编写脚本查找指定小时段内修改的文件?

解决脚本查找指定小时修改文件的问题

嘿,我来帮你修正这个脚本~你的思路是对的,但有几个小细节没处理好,导致脚本没法正常工作,我来一步步给你捋清楚:

原脚本的问题点

  • 变量引用错误:条件判断里的N没有加$,bash会把它当成普通字符串,而不是你输入的变量值;
  • 整数比较运算符不对:bash中整数比较要用-ge(大于等于)、-le(小于等于),而不是>=、<=;
  • find的时间参数格式错误:"$N:00-59"不是find能识别的时间格式,得用范围条件来限定时间区间。

修正后的完整脚本

echo "Give hour: "
read N
if [[ $N -ge 0 && $N -le 23 ]]; then
    # 匹配修改时间在 N:00 到 (N+1):00 之间的文件(即X:00-X:59)
    find /home/mikepnrs -newermt "$N:00" ! -newermt "$((N+1)):00"
else
    echo "Out of bounds! Please enter an hour between 0 and 23."
fi

关键改动说明

  1. 条件判断优化:用[[ ]]替代[ ],它支持更直观的&&逻辑运算符,同时变量引用更安全;把判断范围改成0-23(一天的小时范围是0到23,24等价于次日0点,这样更严谨)。
  2. 时间范围精准匹配:
    • -newermt "$N:00":筛选修改时间晚于等于指定小时整点的文件;
    • ! -newermt "$((N+1)):00":排除修改时间晚于等于下一个小时整点的文件;
      两者结合就精准覆盖了X:00到X:59:59这个时间段的所有文件。

比如你输入14,脚本就会找出所有下午2点整到2点59分59秒之间修改的文件,完全符合你的需求~

内容的提问来源于stack exchange,提问作者michaelpnrs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 09:12:55