我刚刚学会了如何不断检查文件是否被修改:
while inotifywait -q -e modify filename >/dev/null; do
echo "filename is changed"
# do whatever else you need to do
done
Run Code Online (Sandbox Code Playgroud)
如果我使用目录名而不是文件名,我可以检查该目录的所有文件:
while inotifywait -q -e modify directoryname >/dev/null; do
echo "filename is changed"
# do whatever else you need to do
done
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能得到echo
已更改的文件的文件名呢?
inotifywait
在监视目录上发出一组连续的事件,因此推荐的方法是将监视移出循环while
并在新循环中查找事件,该循环查看inotify
. 请注意,这涉及删除--quiet
标志,因为该read
命令需要查看这些事件并通过标准输入读取它。
inotifywait -m -e modify "directoryname" |
while read -r dir action file; do
echo "The file '$file' appeared in directory '$dir' via '$action'"
done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1351 次 |
最近记录: |