inotifywait:实时监控目录文件变化

用 inotify-tools 的 inotifywait 在文件被创建、修改或删除的瞬间触发动作。

Linuxinotify 文件监控监控事件低风险
执行 inotifywait -m -r -e create,modify,delete 目录 即可实时打印每次变更事件,或在脚本中循环读取输出做出反应。

01命令

命令
$ inotifywait -m -r --format '%w%f %e' -e create,modify,delete /var/www/uploads

02作用说明

inotifywait 是内核 inotify API 的命令行入口:不必在循环里用 find 或 ls 反复轮询,内核会在事件发生的瞬间唤醒你的进程。-m 让监控在首个事件后继续(默认只报一次),-r 递归子目录,-e 过滤关心的事件,--format 控制输出格式,便于 while read 循环分发处理。典型用途:自动处理上传文件、同步变更、保存代码后自动跑测试。

03风险

风险低风险
使用条件inotify-tools package
!注意: inotify 监视器数量有限(见 /proc/sys/fs/inotify/max_user_watches);递归监视超大目录树可能耗尽配额并悄悄漏掉事件。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • inotifywait(1) — Arch Linux manual
    Arch Linux · technical · 2026-09-17
    依据: -m monitor continuously, -r recursive, -e selects events, --format customizes the output line
  • inotifywait(1) — Ubuntu manpage
    Canonical · technical · 2026-09-17
    依据: -m monitor continuously, -r recursive, -e selects events (create, modify, delete, move), --format customizes output

最后验证: 2026-09-17 · 分类: 文件与文件夹

06相关方案