Como monitorar se um arquivo foi criado?

Como monitorar se um arquivo foi criado?

Preciso monitorar se, por exemplo, arquivo/tmp/algumarquivo123foi criado após alguns eventos. Eu tentei usarinotifywaitmas aqui está um problema:

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

porque exatamente não existe esse arquivo, quero saber se ele estará lá!

Como posso resolver esse problema?

Atualização: Talvez se eu explicar o que quero alcançar ficará mais claro.

Preciso escrever shell script (sh) com consumo mínimo de CPU, algo assim:

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

Espero que esse script pare a execução eminotifywait -e criar $SPECIFIC_FILEaté que este $SPECIFIC_FILE não seja criado e seria melhor então

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

Responder1

Tendoinotifywaitverifique noDiretório Parental:

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

Você também pode especificar o formato da hora do evento com o botão-timefmtopção. Além disso, se você quiser agir imediatamente executando algum arquivo de script, por exemplo, você pode usarcauda -fno arquivo de script para monitorar continuamente o arquivo de log, aqui/home/eu/zzou você pode criar umtubo nomeadoarquivar e terinotifywaitescreva nele, enquanto seu script lê a partir dele.

informação relacionada