fswatch
fswatch est un petit programme utilisant l'API FSEvents de Mac OS X pour surveiller un répertoire. Lorsqu'un événement concernant une modification de ce répertoire est reçu, la commande shell spécifiée est exécutée par/bin/bash
Si vous êtes sous GNU / Linux,
inotifywatch (qui fait partie du
inotify-tools
package sur la plupart des distributions) fournit des fonctionnalités similaires.
Mise à jour: fswatch
peut désormais être utilisée sur de nombreuses plates-formes, notamment BSD, Debian et Windows.
Syntaxe / Un exemple simple
La nouvelle façon de regarder plusieurs chemins - pour les versions 1.x et supérieures :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
Remarque: Le nombre sorti par -o
sera ajouté à la fin de la xargs
commande si ce n'est pour le -I{}
. Si vous choisissez d'utiliser ce numéro, placez-le {}
n'importe où dans votre commande.
L'ancienne méthode pour les versions 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
Installation avec Homebrew
Le 9/12/13, il a été ajouté à homebrew - yay! Donc, mettez à jour votre liste de formules ( brew update
) et tout ce que vous avez à faire est de:
brew install fswatch
Installation sans Homebrew
Tapez ces commandes dans Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
Si vous n'avez pas de c
compilateur sur votre système, vous devrez peut-être installer les outils de ligne de commande Xcode ou Xcode - tous deux gratuits. Cependant, si tel est le cas, vous devriez probablement vérifier les homebrews .
Options supplémentaires pour la fswatch
version 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.