Ispirato da questa risposta da superutente ho scritto il seguente copy_library.shscript, salvato nella stessa cartella di un file chiamato library.bib:
#!/bin/sh
while inotifywait -e close_write library.bib; do
cp -f ./library.bib ../other_place/ ;
echo "Library copied"
done
Se avvio manualmente questo script con ./copy_library.shil processo termina dopo la prima copia (che funziona correttamente):
londonrob ~/mydir
> ./copy_library.sh
Setting up watches.
Watches established.
library.bib CLOSE_WRITE,CLOSE
Library copied
Setting up watches.
Watches established.
londonrob ~/mydir
>
e non vengono rilevate ulteriori modifiche. Sono sicuro che dovrei fare qualcosa con questo script, quindi è in esecuzione continuamente "in background" senza che io debba avviarlo manualmente.
Ma cosa?
-mè che genera solo nomi di eventi astdout. Significa che il ciclo while non viene mai chiamato.