我刚刚学会了如何不断检查文件是否被修改:
while inotifywait -q -e modify filename >/dev/null; do
echo "filename is changed"
# do whatever else you need to do
done
如果我使用目录名而不是文件名,我可以检查目录的所有文件:
while inotifywait -q -e modify directoryname >/dev/null; do
echo "filename is changed"
# do whatever else you need to do
done
但是我怎样才能知道echo
已更改文件的文件名?
inotifywait
在监视的目录上发出一组连续的事件,因此推荐的方法是将监视移出while
循环并在新循环中查找事件,该循环查看inotify
. 请注意,这涉及删除--quiet
标志,因为read
命令需要查看这些事件并通过标准输入读取它。