Este script não usa pesquisa. Em outras palavras, não faz verificações periódicas. Em vez disso, ele usa uma ferramenta, inotifywait
, projetada para monitorar as alterações no sistema de arquivos.
Nesse script, inotifywait
monitora o diretório atual ( .
). Toda vez que um arquivo é criado nesse diretório, inotifywait
emite seu nome e o script verifica se ele corresponde a sleep.txt
. Em caso afirmativo, anuncia a criação:
[ -e sleep.txt ] || while IFS= read -r fname
do_
[ "$fname" = sleep.txt ] && break
done < <(inotifywait -m -q -e create -e moved_to --format %f .)
echo "Finally, sleep.txt now exists!!!"
Mais detalhes
As opções usadas para inotifywait
têm os seguintes significados:
-
-m
significa continuar monitorando o diretório. Em outras palavras, não pare na primeira vez que algo acontecer digno de ser relatado. -
-q
significa estar mais quieto que o normal. -
-e create -e moved_to
significa apenas o relatório no arquivo criado ou movido para este diretório. -
--format %f
informa para imprimir o nome do arquivo sempre que ocorrer um evento de criação de arquivo -
.
informa qual diretório monitorar. Um período,.
, sempre significa o diretório atual.
Instalando inotifywait
Em sistemas semelhantes ao Debian, inotifywait
faz parte de inotify-tools
e pode ser instalado via:
apt-get install inotify-tools
MS Windows e OSX
inotifywait
está disponível para sistemas Linux e também é executado no Cygwin.
Para ler sobre ferramentas semelhantes para o Windows, clique aqui .
Para obter informações sobre ferramentas semelhantes para o Mac OSX, clique aqui .