美文网首页
fswatch 文件变动监听

fswatch 文件变动监听

作者: pipu | 来源:发表于2019-10-11 16:09 被阅读0次

    fswatch

    fswatch是一个文件修改监视器,当指定的文件或者文件夹被修改的时候会受到通知。

    特点

    • 支持许多OS系统特定的API,如kevent,inotify和FsEvents
    • 递归监听文件夹
    • 使用正则表达式控制包含和排除的文件
    • 可定制记录格式
    • 支持周期性闲置事件

    安装

    # Homebrew
    $ brew install fswatch
    

    用法

    fswatch 接收一组路径,它们能收到改变事件

    $ fswatch [options] ... path-0 ... path-n
    
    

    事件流将会被创建即使其中的路径不存在。 如果这些路径在 fswatch激发之后被创建,改变事件将会被正确的收到。取决于正在使用的监视程序,那些新创建的路径将在经过大量的配置的延迟后被监听到。

    fswatch的输出结果可以通过管道命令传递给其他的程序来进行后续处理

    fswatch -0 a.js | while read -d "" event ;  do echo ${event}; done
    

    如果是需要在一系列的变化事件被打印到标准输出时执行某一个命令,并且对事件细节并不关心,这时可以使用下面的命令:

    $ fswatch -o path | xargs -n1  program
    
    

    常用参数

    • -0, --print0 使用ASCII NUL 字符作为行分隔符。因为文件名中潜在可能包含除了NUL之外的任意字符,本选项能够保证fswatch的输出结果可以被使用NUL作为分隔符的程序安全的解析,例如使用xargs -0 和 shell内建的read -d ''
    • -1, --one-event 事件触发一次后就退出
    • -e, --exclude regexp 根据正则表达式文件排除
    • -i,--include regexp 根据正则表达式文件包含,可以添加多次
    • -r, --recursive 递归监听

    相关文章

      网友评论

          本文标题:fswatch 文件变动监听

          本文链接:https://www.haomeiwen.com/subject/kbfxmctx.html