如何打印导致fswatch执行某些操作的文件路径

时间:2016-02-14 18:49:37

标签: linux macos inotify inotifywait fswatch

我使用fswatch在文件更改时执行某些操作。我使用以下命令:

fswatch -o -r '.' | while read MODFILE
do
    echo 'Some file changed, so take some action'
done

这样可以正常工作,如果我更改了几个文件,我会在终端中看到以下内容:

Some file changed, so take some action
Some file changed, so take some action
Some file changed, so take some action
etc.

但我也想知道哪个文件确实导致了这个动作。所以我查看了fswatch手册页,其中显示了以下内容:

fswatch writes a record for each event it receives containing:
     -       The timestamp when the event was received (optionally).
     -       The path affected by the current event.
     -       A space-separated list of event types (see EVENT TYPES ).

但是如上所述,我看不到终端中列出的任何内容。有没有人知道我如何展示" 受当前事件影响的路径。"?

欢迎所有提示!

1 个答案:

答案 0 :(得分:2)

当然,请使用:

<div>
  <div class="container level1">
    <div class="container level2">
      <div class="container level3">
        <div class="container level4">
          <div>1</div>
          <div>2</div>
          <div>3</div>
          <div>4</div>
        </div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
      </div>
      <div>2</div>
      <div>3</div>
      <div>4</div>
    </div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
  </div>
</div>

如果要在列表中保存受影响文件的名称,可以这样做:

fswatch --batch-marker=EOF -xn . | while read file event; do 
   echo $file $event
   if [ $file = "EOF" ]; then 
      echo TRIGGER
   fi
done