Kabul edilen cevap gerçekten işe yarar (teşekkürler maxschlepzig), ancak betiğiniz bitene kadar inotifywait izlemeyi arka planda bırakır. Eğer inotifywait tarafından izlenecek dizin nokta (.) 'Dan' / tmp 'olarak değiştirilirse, gereksinimlerinize tam olarak uyan tek cevap (yani sleep.txt dosyasının / tmp içinde görünmesini beklemek) Stephane gibi görünüyor.
Bununla birlikte, SADECE sleep.txt bayrağınızı koymak için geçici bir dizin kullanmak istiyorsanız ve başka hiç kimsenin bu dizine herhangi bir dosya koymayacağına bahse girebilirseniz, sadece inotify'dan bu dizini dosya oluşturmaları için izlemesini istemek yeterli olacaktır:
1. adım: izleyeceğiniz dizini oluşturun:
directoryToPutSleepFile=$(mktemp -d)
2. adım: dizinin gerçekten orada olduğundan emin olun
until [ -d $directoryToPutSleepFile ]; do sleep 0.1; done
3. adım: HERHANGİ BİR dosya içeride görünene kadar bekleyin $directoryToPutSleepFile
inotifywait -e create --format '%f' --quiet $directoryToPutSleepFile
İçinde koyacağız dosya $directoryToPutSleepFile
sleep.txt awake.txt, her neyse adlandırılabilir. Komut dosyanızın içinde herhangi bir dosya oluşturulduğu anda ifadeyi $directoryToPutSleepFile
geçmeye devam eder inotifywait
.
$MAILPATH
.