How to watch file changes on Mac OSX using FSWatch?
我尝试使用fswatch从Linux bash脚本中转换以下行,以便能够在Mac OSX上运行它:
1 2 3 4 | inotifywait -r -m 'myfolder/' | while read MODFILE do echo"something" done |
因为inotifywait在mac osx上不起作用,所以我想用fswatch代替第一行。虽然自述文件引用了fswatch的手册页,但它没有提供指向它的链接,而且在互联网上搜索也没有任何帮助。所以我试着乱转了一下。
我创建了一个名为
1 2 3 4 5 6 7 | fswatch -o testfswatch/ | echo"LALA" fswatch -o testfswatch/ | someSimpleProgram fswatch -o testfswatch/ | xargs -n1 -I{} echo"LALA" fswatch -o testfswatch/ | xargs -n1 -I{} ./someExecutable fswatch -o testfswatch/ | xargs -n1 echo"LALA" fswatch -o testfswatch/ | xargs -n1 someExecutable // And more variations of the above |
不过,当我更改或添加
有人知道我做错了什么吗?欢迎使用所有提示!
正如bushmills已经说过的那样,在与
此外,添加了一个特定选项(
那么,在您的情况下,您可能希望使用以下语法(根据需要对其进行微调):
1 | $ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command] |
这种方式:
fswatch -0 将使用NUL 字符分割记录。xargs -0 将使用NUL 字符分割记录。这需要与fswatch 正确匹配阻抗。xargs -n 1 将调用command 每个命令。如果你想做每一个x 记录,那么使用xargs -n x 。xargs -I {} 将用解析的参数替换command 中出现的{} 。如果正在运行的命令不需要事件路径名,只需删除此选项。
希望这有帮助。
与1.0及更高版本相比,1.0之前版本的fswatch使用稍微不同的调用语法。确保运行的版本高于1.0,如果您的版本高于1.0,则可能需要升级。