Как отследить, был ли создан файл?

Как отследить, был ли создан файл?

Мне нужно отслеживать, например, файл/tmp/somefile123был создан после некоторых событий. Я пытался использоватьinotifyждатьно вот проблема:

# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory

поскольку такого файла точно нет, я хочу знать, будет ли он там!

Как мне решить эту проблему?

ОБНОВЛЕНИЕ: Возможно, если я объясню, чего я хочу добиться, это будет более понятно.

Мне нужно написать скрипт оболочки (sh) с минимальным потреблением ресурсов процессора, что-то вроде этого:

if [ $(inotifywait -e create $SPECIFIC_FILE) ]; then
    blah-blah-blah some actions
fi
# And then similarly monitor if this file was deleted and then do another actions

Я ожидаю, что выполнение скрипта прекратитсяinotifywait -e создать $SPECIFIC_FILEпока этот $SPECIFIC_FILE не будет создан и было бы лучше тогда

while [ ! -f $SPECIFIC_FILE ]; do
    blah-blah-blah some actions
    sleep 1
done

решение1

Имеяinotifyждатьпроверьте народительский каталог:

/tmp$ inotifywait -e create -d -o /home/me/zz /tmp
/tmp$ touch z1
/tmp$ cat ~/zz
/tmp/ CREATE z1

Вы также можете указать формат времени для события с помощью-timefmtвариант. Также, если вы хотите действовать немедленно, например, выполнив какой-либо файл скрипта, вы можете использоватьхвост -фв файле скрипта для постоянного мониторинга файла журнала, здесь/домой/я/zz, или вы можете создатьименованный каналфайл и иметьinotifyждатьзаписывайте в него данные, пока ваш скрипт читает их.

Связанный контент