3

我的文件编辑器会创建以..

我在跑步:

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

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

我希望看到一个事件——仅在我保存文件时。

有没有办法让我只用 CLI 来做到这一点?我对创建 python 脚本和直接使用 watchdog API 不感兴趣。

4

1 回答 1

6

使用--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) 开关(这只是布尔值,不需要参数)。

于 2013-10-26T02:58:03.753 回答