1
當UNIX中文件夾的內容發生更改(刪除,添加或編輯)時是否會生成任何事件,並且是否可以捕獲此事件以觸發另一個腳本?如何捕獲更改文件夾中文件的事件?
當UNIX中文件夾的內容發生更改(刪除,添加或編輯)時是否會生成任何事件,並且是否可以捕獲此事件以觸發另一個腳本?如何捕獲更改文件夾中文件的事件?
如果您使用的是Linux,您可以使用inotify子系統來抓住這種事情。對於Python,Perl等,有inotify
綁定,或者可以在shell腳本中使用inotifywait
程序(inotify-tools程序包的一部分)。
例如,如果我運行inotifywait -m /tmp
,這將會觀察/tmp
的更改。如果我創建一個文件,我看到:
/tmp/ CREATE foo
/tmp/ OPEN foo
/tmp/ ATTRIB foo
/tmp/ CLOSE_WRITE,CLOSE foo
如果我刪除該文件,我看到:
/tmp/ DELETE foo
你可以寫一個shell腳本,從inotifywait
讀取這些通知,並採取相應的行動對他們。
感謝您的提示,我使用了inotify.h頭文件來創建一個C程序,用於偵聽文件夾中的更改。 –