首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用FSWatch查看Mac上的文件更改?

如何使用FSWatch查看Mac上的文件更改?
EN

Stack Overflow用户
提问于 2014-07-04 19:48:18
回答 2查看 13.7K关注 0票数 12

我正在尝试使用fswatch从linux bash脚本中转换以下代码行,以便能够在Mac上运行它:

代码语言:javascript
复制
inotifywait -r -m 'myfolder/' | while read MODFILE
do
    echo "something"
done

由于inotifywait在Mac上不起作用,我想用第一行替换FSWatch。尽管自述文件引用了fswatch手册页,但它没有提供指向它的链接,在互联网上搜索也找不到任何东西。所以我试着胡闹了一下。

我创建了一个名为testfswatch/的文件夹,并尝试在父文件夹中运行以下命令,然后在testfswatch/文件夹中添加和更改文件:

代码语言:javascript
复制
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

但是,当我在tesfswatch/文件夹中更改或添加文件时,这些命令似乎都不起作用。

有人知道我哪里做错了吗?欢迎所有提示!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-04 20:45:51

与1.0及更高版本相比,fswatch 1.0之前的版本使用的调用语法略有不同。请确保您运行的是高于1.0的版本,如果您的版本低于1.0,则可能需要升级。

票数 2
EN

Stack Overflow用户

发布于 2014-08-27 17:53:45

正如Bushmills已经说过的那样,在v.unix 1.x中,fswatch语法在与fsw合并后发生了变化:这个决定背后的理由是允许使用>=用户觉得自然的语法监视多个路径。

此外,还添加了一个特定的选项(-0),以允许将fswatch输出轻松且不易出错地输送到另一个程序的输入:在使用-0时,fswatch将使用NUL (\0)字符分隔记录(与findxargs等其他实用程序所做的类似)。

在您的示例中,您可能希望使用以下语法(根据您的需要对其进行微调):

代码语言:javascript
复制
$ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command]

这样:

  • fswatch -0将使用NUL拆分记录character.
  • xargs -0将使用NUL字符拆分记录。这是正确匹配阻抗所必需的,fswatch.
  • xargs -n 1将调用command每个命令。如果您想对每个解析记录都执行此操作,那么使用xargs -n x.
  • xargs -I {}将用x参数替换command中出现的{}。如果您正在运行的命令不需要事件路径名,只需删除此选项即可。

希望这能有所帮助。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24573584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档