检测文件在bash中打开的时间

时间:2016-08-10 14:01:01

标签: linux bash ubuntu sh

我对bash脚本非常陌生,我需要创建一个脚本,只要用户使用任何程序打开给定文件(/ etc / hosts),它就会运行一个函数。

如何在文件打开时检测脚本?

1 个答案:

答案 0 :(得分:0)

如果您安装了inotify-tools软件包(如上面评论中提到的@TobySpeight),那么您可以使用inotifywait命令,因此您可以执行以下操作:

while inotifywait -e open /etc/hosts
do
   echo 'hosts was opened!'
done

有很多选项...... RTFM ...选择要观看的文件等等。

我猜,但我怀疑上面的代码中存在竞争条件。如果在脚本运行echo命令时打开文件,它将不会注意到,并且在循环返回时可能会错过它。也许这无关紧要。