我正在使用fswatch
并且只希望在扩展名为 .xxx
的文件时触发它被修改/创建等。文档和下面的第二个引用表明:
- 默认情况下接受所有路径,除非排除过滤器另有说明。
- 包含过滤器可以覆盖任何排除过滤器。
- 命令行中过滤器定义的顺序无效。
问题:用于排除所有与 .xxx
不匹配的文件的正则表达式是什么?扩展名?
引用文献:
平台:
- MacOS 10.9.5。
最佳答案
我是 fswatch
作者。它可能不是很直观,但 fswatch
包含一切,除非排除过滤器另有说明。解决您的问题:您想要包含具有给定扩展名的所有文件。用排除和包含过滤器重新表述:
- 您想要排除所有内容。
- 您想要包含具有给定扩展名
ext
的文件。
即:
要排除所有内容,您可以添加与任何字符串匹配的排除过滤器:
.*
。要包含具有给定扩展名
ext
的文件,您可以添加一个包含过滤器来匹配任何以.ext
结尾的路径:\\.ext$
。在这种情况下,您需要转义点.
以匹配文字点,然后转义扩展名ext
,然后匹配end 的路径与$
.
最终命令是:
$ fswatch [options] -e ".*" -i "\\.ext$"
如果您想要不区分大小写过滤器(例如匹配eXt
、Ext
等),只需添加-I
选项。
关于macos - fswatch 仅监视特定文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713278/