如何使用watchmedo忽略以句点开头的文件?

时间:2013-10-22 15:48:38

标签: python watchdog

我的文件编辑器创建前缀为.的临时文件。

我正在跑步:

watchmedo shell-command -p '*.py' -R -c 'echo "${watch_src_path}"'

我在编辑时看到临时文件的事件,然后是文件保存的两个事件(可能是因为它执行了删除和写入)。

我希望看到一个事件 - 只有当我保存文件时才会这样。

有没有办法让我只使用CLI执行此操作?我对创建python脚本并直接使用watchdog API不感兴趣。

1 个答案:

答案 0 :(得分:5)

使用--ignore-patterns-i)开关。

watchmedo shell-command \
    -p'*.py' \
    -R \
    -c'echo "${watch_src_path}"'\
    --ignore-patterns="*/.*"

请注意,watchmedo在完整的watch_src_path上匹配,因此您的忽略模式不能像您最初想到的那样简单".*"。此外,通配符的所有陷阱都是有效的,所以如果你在隐藏的目录/path/to/some/.hidden/dir中做一些愚蠢的事情,那么你必须有一个更高级的模式。

如果与目录相关的事件也引起你的烦恼,你也可能想要--ignore-directories-D)切换(这个只是布尔值,不需要参数)。