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