Bagaimana saya bisa segera mendeteksi ketika file baru ditambahkan ke folder dalam skrip bash? Saya ingin skrip memproses file segera setelah dibuat di folder. Apakah ada metode selain menjadwalkan tugas cron yang memeriksa file baru setiap menit atau lebih?
Jawaban yang Diterima:
Anda harus mempertimbangkan untuk menggunakan inotifywait , sebagai contoh:
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
Di Ubuntu inotifywait disediakan oleh inotify-tools kemasan. Pada versi 3.13 (saat ini di Ubuntu 12.04) inotifywait akan menyertakan nama file tanpa opsi -f. Versi yang lebih lama mungkin perlu dipaksakan. Yang penting untuk diperhatikan adalah bahwa -e pilihan untuk inotifywait adalah cara terbaik untuk melakukan penyaringan acara. Juga, read . Anda perintah dapat menetapkan output posisi ke dalam beberapa variabel yang dapat Anda pilih untuk digunakan atau diabaikan. Tidak perlu menggunakan grep/sed/awk untuk memproses keluaran sebelumnya.