Você deve considerar o uso de inotifywait
, como exemplo:
inotifywait -m /path -e create -e moved_to |
while read path action file; do
echo "The file '$file' appeared in directory '$path' via '$action'"
# do something with the file
done
No Ubuntu inotifywait
é fornecido pelo pacote inotify-tools
. A partir da versão 3.13 (atual no Ubuntu 12.04) inotifywait
incluirá o nome do arquivo sem a opção -f. Versões mais antigas podem precisar ser coagidas. O que é importante notar é que a opção -e
para inotifywait
é a melhor maneira de fazer a filtragem de eventos. Além disso, o comando read
pode atribuir a saída posicional a várias variáveis que você pode optar por usar ou ignorar. Não há necessidade de usar o grep / sed / awk para pré-processar a saída.