fswatch 只监视某个文件扩展名
fswatch to watch only a certain file extension
我正在使用 fswatch
并且只希望它在扩展名为 .xxx
的文件是 modified/created 等时触发。文档和下面的第二个参考表明:
- 默认接受所有路径,除非排除过滤器另有说明。
- 包含过滤器可能会覆盖任何排除过滤器。
- 命令行中过滤器定义中的顺序无效。
问题:用于排除所有不[=39=的文件的正则表达式是什么] 匹配 .xxx
扩展名?
参考文献:
- Is there a command like "watch" or "inotifywait" on the Mac?
- Watch for a specific filetype
平台:
- MacOS 10.9.5.
您可以像这样监视单个扩展名文件的更改:
fswatch -e ".*" -i ".*/[^.]*\.xxx$" .
这将排除所有文件,然后包括所有以 .xxx
结尾的路径(并排除以点开头的文件)。
如果你想运行对文件更改的命令,你可以添加以下内容:
fswatch -e ".*" -i ".*/[^.]*\.xxx$" -0 . | xargs -0 -n 1 -I {} echo "File {} changed"
我是 fswatch
作者。它可能不是很直观,但 fswatch
包括 所有内容 除非排除过滤器另有说明。解决您的问题:您想要包含具有给定扩展名的所有文件。在排除和包含过滤器方面改写:
- 您想排除所有。
- 您想包含具有给定扩展名
ext
的文件。
即:
要排除所有内容,您可以添加一个匹配任何字符串的排除过滤器:.*
.
要包含具有给定扩展名 ext
的文件,您可以添加一个匹配任何以 .ext
: \.ext$
结尾的路径的包含过滤器。在这种情况下,您 需要 转义点 .
以匹配文字点,然后是扩展名 ext
,然后匹配 end[= $
.
路径的 48=]
最后的命令是:
$ fswatch [options] -e ".*" -i "\.ext$"
如果您想要不区分大小写 过滤器(例如匹配eXt
、Ext
等),只需添加-I
选项.
我正在使用 fswatch
并且只希望它在扩展名为 .xxx
的文件是 modified/created 等时触发。文档和下面的第二个参考表明:
- 默认接受所有路径,除非排除过滤器另有说明。
- 包含过滤器可能会覆盖任何排除过滤器。
- 命令行中过滤器定义中的顺序无效。
问题:用于排除所有不[=39=的文件的正则表达式是什么] 匹配 .xxx
扩展名?
参考文献:
- Is there a command like "watch" or "inotifywait" on the Mac?
- Watch for a specific filetype
平台:
- MacOS 10.9.5.
您可以像这样监视单个扩展名文件的更改:
fswatch -e ".*" -i ".*/[^.]*\.xxx$" .
这将排除所有文件,然后包括所有以 .xxx
结尾的路径(并排除以点开头的文件)。
如果你想运行对文件更改的命令,你可以添加以下内容:
fswatch -e ".*" -i ".*/[^.]*\.xxx$" -0 . | xargs -0 -n 1 -I {} echo "File {} changed"
我是 fswatch
作者。它可能不是很直观,但 fswatch
包括 所有内容 除非排除过滤器另有说明。解决您的问题:您想要包含具有给定扩展名的所有文件。在排除和包含过滤器方面改写:
- 您想排除所有。
- 您想包含具有给定扩展名
ext
的文件。
即:
要排除所有内容,您可以添加一个匹配任何字符串的排除过滤器:
.*
.要包含具有给定扩展名
ext
的文件,您可以添加一个匹配任何以.ext
:\.ext$
结尾的路径的包含过滤器。在这种情况下,您 需要 转义点.
以匹配文字点,然后是扩展名ext
,然后匹配 end[=$
. 路径的 48=]
最后的命令是:
$ fswatch [options] -e ".*" -i "\.ext$"
如果您想要不区分大小写 过滤器(例如匹配eXt
、Ext
等),只需添加-I
选项.