inotify 是 Linux 系统中的一个功能,用于监控文件系统事件,如文件或目录的创建、删除、修改等。要使用 inotify 监控目录变化,你可以使用 inotifywait 命令行工具,它是 inotify-tools 软件包的一部分。以下是如何使用 inotifywait 监控目录变化的步骤:
安装 inotify-tools (如果尚未安装): 对于基于 Debian 的系统(如 Ubuntu),可以使用以下命令安装:
sudo apt-get update
sudo apt-get install inotify-tools
对于基于 Red Hat 的系统(如 CentOS),可以使用以下命令安装:
sudo yum install epel-release
sudo yum install inotify-tools
使用 inotifywait 监控目录:
基本的 inotifywait 命令语法如下:
inotifywait [选项] 目录 [事件]
例如,要监控 /path/to/directory 目录的变化,可以使用以下命令:
inotifywait /path/to/directory
这将监控目录的变化并在终端中输出事件信息。
监控特定事件:
inotifywait 允许你指定要监控的事件类型。常见的事件包括 CREATE、DELETE、MODIFY 等。你可以使用 -m 选项来监控多个事件,使用 --format 选项来自定义输出格式。例如:
inotifywait -m -r -e CREATE,DELETE,MODIFY --format '%w%f %e' /path/to/directory
这里 -m 表示监控模式(持续监控),-r 表示递归监控子目录,-e 后面跟着要监控的事件列表,--format 定义了输出格式(%w%f 表示文件路径,%e 表示事件类型)。
将输出重定向到文件:
如果你想将监控的输出保存到文件中,可以使用重定向操作符 > 或 >>:
inotifywait -m -r -e CREATE,DELETE,MODIFY --format '%w%f %e' /path/to/directory >> /path/to/logfile.log
结合其他命令使用:
你可以将 inotifywait 的输出与其他命令结合使用,例如使用 while 循环来处理事件:
while inotifywait -e CREATE,DELETE,MODIFY /path/to/directory; do
echo "Directory changed!"
# 在这里添加你想要执行的命令
done
使用 inotifywait 可以方便地监控目录变化,并根据需要执行相应的操作。记得在使用完毕后退出监控模式,可以通过按 Ctrl+C 来停止 inotifywait 命令。