2013-10-22 64 views
3

我的文件編輯器創建了一個以.爲前綴的臨時文件。如何忽略使用watchmedo以句點開頭的文件?

我運行:

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

我看,因爲我的編輯,然後兩個事件的文件保存爲臨時文件事件(大概是因爲它做了刪除和寫入)。

我想看到一個事件 - 只有當我保存一個文件。

有沒有辦法讓我只用CLI來做到這一點?我對創建python腳本和直接使用watchdog API沒有興趣。

回答

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)切換。

+0

是否可以過濾事件,以便我只看到刪除/寫入中的一個事件? – ToBeReplaced

+0

我認爲你看到的第二個事件可能是目錄更改事件;您是否嘗試過使用-D開關運行? –

+0

運行'watchmedo log'告訴我它是一個額外的FileModifiedEvent - 編輯器必須兩次觸及文件。謝謝您的幫助。 – ToBeReplaced