簡體   English   中英

inotifywait無法按預期工作

[英]inotifywait doesn't work as expected

我想編寫一個腳本,該腳本在特定目錄(或子目錄)中發生文件更改(意味着內容更改或文件被具有相同名稱的文件覆蓋)時觸發一些代碼。 在運行代碼並更改文件時,似乎每次都會運行兩次,因為我得到了兩次echo輸出。 我有什么想念的嗎?

while true; do
   change=$(inotifywait -e close_write /home/bla)
   change=${change#/home/bla/ * }
   echo "$change"
done

當我更改指定目錄的子目錄中的內容時,它也不執行任何操作。

我更改指定目錄中的文件后,outpoot如下所示:

Setting up watches.
Watches established.
filename
Setting up watches.
Watches established.
filename
Setting up watches.
Watches established.

我無法重現該腳本兩次輸出一條消息。 您確定不運行兩次(在后台)嗎? 還是使用編輯器來更改文件? 打開文件時,某些編輯器會將備份文件放置在已編輯文件旁邊。 這將說明您看到兩條消息。

對於遞歸目錄監視,您需要將選項-r傳遞給inotifywait 但是,您不應在超大文件系統樹上運行該命令,因為inotify監視的數量是有限的。 您可以通過以下方式獲取系統上的當前限制

cat /proc/sys/fs/inotify/max_user_watches

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM