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

如何用Bash脚本的if-else语句监测目录每日新文件生成并通知?

实现Bash脚本判断当日文件是否生成并发送通知

完全可以通过Bash脚本的if-else语句实现这个需求,核心是判断目标目录中是否存在当日创建/修改的文件,以下是具体的条件写法和完整脚本:

核心逻辑说明

通过find命令精准匹配目录中当天的文件,结合grep判断是否有结果返回,以此作为if条件的判断依据。

完整脚本代码

x="/le/df/er"
# 判断目录中是否存在今日生成的文件
if ! find "$x" -maxdepth 1 -type f -newermt "$(date +%Y-%m-%d)" ! -newermt "$(date +%Y-%m-%d) 23:59:59" | grep -q .; then
    (echo "File is not Generated Today.") | mailx -s "File not Saved today in $x" ******@gmail.com
else
    echo "Save successful today"
fi

条件部分解析

  • !:取反操作,当后续命令返回失败(即未找到今日文件)时,触发if块逻辑
  • find "$x" -maxdepth 1 -type f:仅在目标目录(不递归子目录)中查找普通文件
  • -newermt "$(date +%Y-%m-%d)":筛选修改时间晚于今日0点的文件
  • ! -newermt "$(date +%Y-%m-%d) 23:59:59":筛选修改时间不晚于今日23:59:59的文件,确保只匹配今日内的文件
  • grep -q .:静默检查find命令是否有输出,只要有文件就返回成功,否则返回失败

补充说明

  • 若文件的生成时间以创建时间而非修改时间为准,可将-newermt替换为-newerct
  • 确保脚本执行用户有目标目录的读取权限,且mailx工具已正确配置可发送邮件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:15:30