È possibile utilizzare fswatch
, che trovo più semplice da installare tramite homebrew
. E, sì, usa FSEvents. Poi basta fare:
fswatch /Volumes/MUSIC
dove MUSIC
è un server musicale Samba basata sulla mia rete.
Ecco come appare in azione ... prima mostro i volumi montati (e che MUSIC è basato su Samba) nella finestra in alto, quindi avvio fswatch
nella finestra in basso a sinistra, quindi apporto le modifiche nel filesystem nella finestra in alto e puoi vederli accadere nel Finder e anche vedere nella finestra in basso a sinistra che fswatch
tiene traccia di tutti gli eventi.
È anche possibile utilizzare per interagire con un altro programma ogniqualvolta vengono rilevati eventi simili (estratto dal fswatch
manpage):
Probabilmente il modo più semplice per tubo fswatch
ad un altro programma in ordine per rispondere a un evento è utilizzando xargs:
$ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command]
fswatch -0 dividerà i record usando il carattere NUL.
xargs -0 divide i record utilizzando il carattere NUL. Questo è necessario per abbinare correttamente l'impedenza con fswatch.
xargs -n 1 invocherà il comando ogni record. Se vuoi farlo ogni x record, allora usa xargs -n x.
xargs -I {} sostituirà le occorrenze di {} in comando con l'argomento analizzato. Se il comando in esecuzione non ha bisogno del nome del percorso dell'evento, è sufficiente eliminare questa opzione. Se preferisci usare un'altra stringa sostitutiva, sostituisci {} con la tua.
fonte
2015-04-15 11:45:12
A meno che il protocollo di condivisione file non includa un modo per il server di notificare al cliente le modifiche (e non conosco alcun protocollo che lo faccia), non sarà possibile. –
Questo ha senso, ma ancora: come fa Finder a farlo? – Jamie
@Gordon - NTFS e SMB consentono le notifiche client delle modifiche (anche le unità di rete mappate se sono un sistema Windows che esegue NTFS). Ma le macchine Linux che ho utilizzato per l'esecuzione di SAMBA non attivano l'evento. Quindi il suo tipo di Microsoft solo come fornisce la funzionalità anche se qualsiasi provider dovrebbe essere in grado di offrire. – jww