首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只查看某个文件扩展名的fswatch

只查看某个文件扩展名的fswatch
EN

Stack Overflow用户
提问于 2016-01-11 02:19:23
回答 2查看 6.7K关注 0票数 19

我使用的是fswatch,只希望在修改/创建扩展名为.xxx的文件时触发它。文档和下面的第二个引用表明:

  • 默认情况下,所有路径都被接受,除非排除筛选器另有规定。
  • 包含过滤器可以覆盖任何排除过滤器。
  • 命令行中过滤器定义中的顺序没有任何影响。

问:用于排除与.xxx扩展名不匹配的所有文件的正则表达式是什么?

参考文献:

平台:

  • MacOS 10.9.5.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-15 11:25:21

我是fswatch作者。这可能不是很直观,但是fswatch包含了所有东西,除非排除过滤器不这么说。您的问题是:您希望包含所有具有给定扩展名的文件。从排除和包容过滤器的角度重新措辞:

  • 你想排除一切。
  • 您希望包含具有给定扩展名ext的文件。

这就是:

  • 若要排除所有内容,可以添加一个与任何字符串:.*匹配的排除筛选器。
  • 要包含具有给定扩展名ext的文件,需要添加一个包含筛选器,以.ext\\.ext$结尾的任何路径匹配。在本例中,您需要转义点.以匹配文字点,然后是扩展ext,然后将路径的末尾与$匹配。

最后的命令是:

代码语言:javascript
复制
$ fswatch [options] -e ".*" -i "\\.ext$"

如果您想要区分大小写的过滤器(例如,匹配eXtExt等),只需添加-I选项即可。

票数 53
EN

Stack Overflow用户

发布于 2016-05-15 11:10:57

您可以监视单个扩展名的文件的更改,如:

代码语言:javascript
复制
fswatch -e ".*" -i ".*/[^.]*\\.xxx$" .

这将排除所有文件,然后包括以.xxx结尾的所有路径(也排除以点开始的文件)。

如果要对文件更改运行命令,可以添加以下内容:

代码语言:javascript
复制
fswatch -e ".*" -i ".*/[^.]*\\.xxx$" -0 . | xargs -0 -n 1 -I {} echo "File {} changed"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34713278

复制
相关文章

相似问题

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