这是我到目前为止得到的 shell 脚本。我希望它递归地检查,因此有以下选项:
-r
对于递归-m
用于监控-e
用于事件通知和跟踪
由于我不知道的原因,这种方法不起作用。我正在使用 rm/nano/touch 等创建/修改/删除文件,在终端中运行脚本时,我收到一条消息,说明已使用特定操作、使用该操作的位置以及使用该文件的位置,/home/stephen/ CREATE test
例如test 是我使用 touch 创建的文件。
#!/bin/sh
while inotifywait -mre create,delete,modify /home;do
echo "test"
done
答案1
我相信 inotifywait -m 不会退出,导致 while 循环未按预期运行。
while inotifywait -r /home -e create,delete,modify; do { echo "test"; }; done
但是应该按您的预期工作。
答案2
我会改变你循环的位置。我会保持监视模式,这样您就不必继续启动该inotifywait
过程,从而限制错过事件的机会:
inotifywait -mre create,delete,modify /home | while read dirname events basename;
do
echo "test $dirname $events $basename"
done