O comando inotifywait
imprime uma mensagem toda vez que o conteúdo do diretório especificado é alterado. Você precisará escolher o evento certo: não quando o arquivo for criado, mas quando o Dropbox terminar de baixá-lo. Eu não sei exatamente como o Dropbox opera. Se ele gravar no arquivo em seu lugar final, ouça os eventos close_write
. Se ele gravar no arquivo em um local temporário e, em seguida, movê-lo, escute moved_to
events. Passe as opções -m -q
a inotifywait
para que ele continue ouvindo os eventos (por padrão, ele só aguarda o próximo evento) e só imprime mensagens relevantes.
cd ~/Dropbox/myfolder
inotifywait -m -q -e close_write --format %f . | while IFS= read -r file; do
cp -p "$file" /path/to/other/directory
done