fswatch
fswatch è un piccolo programma che utilizza l'API FSEvents di Mac OS X per monitorare una directory. Quando viene ricevuto un evento su qualsiasi modifica a quella directory, il comando shell specificato viene eseguito da/bin/bash
Se usi GNU / Linux,
inotifywatch (parte del
inotify-tools
pacchetto sulla maggior parte delle distribuzioni) offre funzionalità simili.
Aggiornamento: fswatch
ora può essere utilizzato su molte piattaforme tra cui BSD, Debian e Windows.
Sintassi / Un semplice esempio
Il nuovo modo che può guardare più percorsi - per le versioni 1.xe successive :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
Nota: il numero emesso da -o
verrà aggiunto alla fine del xargs
comando se non per -I{}
. Se scegli di usare quel numero, posizionalo {}
ovunque nel tuo comando.
Il vecchio modo per le versioni 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
Installazione con Homebrew
A partire dal 9/12/13 è stato aggiunto di nuovo a homebrew - yay! Quindi, aggiorna il tuo elenco di formule ( brew update
) e quindi tutto ciò che devi fare è:
brew install fswatch
Installazione senza Homebrew
Digita questi comandi in Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
Se non si dispone di un c
compilatore sul proprio sistema, potrebbe essere necessario installare gli strumenti da riga di comando Xcode o Xcode, entrambi gratuiti. Tuttavia, se è così, probabilmente dovresti dare un'occhiata a homebrew .
Opzioni aggiuntive per la fswatch
versione 1.x
Usage:
fswatch [OPTION] ... path ...
Options:
-0, --print0 Use the ASCII NUL character (0) as line separator.
-1, --one-event Exit fsw after the first set of events is received.
-e, --exclude=REGEX Exclude paths matching REGEX.
-E, --extended Use exended regular expressions.
-f, --format-time Print the event time using the specified format.
-h, --help Show this message.
-i, --insensitive Use case insensitive regular expressions.
-k, --kqueue Use the kqueue monitor.
-l, --latency=DOUBLE Set the latency.
-L, --follow-links Follow symbolic links.
-n, --numeric Print a numeric event mask.
-o, --one-per-batch Print a single message with the number of change events.
in the current batch.
-p, --poll Use the poll monitor.
-r, --recursive Recurse subdirectories.
-t, --timestamp Print the event timestamp.
-u, --utc-time Print the event time as UTC time.
-v, --verbose Print verbose output.
-x, --event-flags Print the event flags.
See the man page for more information.