Shell

腳本來監視新文件的文件夾?

  • December 27, 2021

如何在bash腳本中的文件夾中添加新文件時立即檢測到?我希望腳本在文件夾中創建文件後立即處理文件。除了安排每分鐘左右檢查新文件的cron作業之外,還有其他方法嗎?

您應該考慮使用inotifywait,例如:

inotifywait -m /path -e create -e moved_to |
   while read dir action file; do
       echo "The file '$file' appeared in directory '$dir' via '$action'"
       # do something with the file
   done

在 Ubuntuinotifywait中是由inotify-tools包提供的。從 3.13 版開始(目前在 Ubuntu 12.04 中)inotifywait將包含不帶 -f 選項的文件名。舊版本可能需要強制執行。需要注意的重要一點是,該-e選項inotifywait是進行事件過濾的最佳方式。此外,您的read命令可以將位置輸出分配給您可以選擇使用或忽略的多個變數。無需使用 grep/sed/awk 來預處理輸出。

引用自:https://unix.stackexchange.com/questions/24952