fswatch
fswatch es un pequeño programa que utiliza la API FSEvents de Mac OS X para monitorear un directorio. Cuando se recibe un evento sobre cualquier cambio en ese directorio, el comando de shell especificado es ejecutado por/bin/bash
Si está en GNU / Linux,
inotifywatch (parte del
inotify-tools
paquete en la mayoría de las distribuciones) proporciona una funcionalidad similar.
Actualización: fswatch
ahora se puede usar en muchas plataformas, incluidas BSD, Debian y Windows.
Sintaxis / Un ejemplo simple
La nueva forma de ver múltiples rutas: para las versiones 1.xy superiores :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
Nota: El número de salida por -o
se agregará al final del xargs
comando si no fuera por el -I{}
. Si elige usar ese número, colóquelo {}
en cualquier lugar de su comando.
La forma más antigua para las versiones 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
Instalación con Homebrew
A partir del 12/09/13 se volvió a agregar a homebrew , ¡sí! Entonces, actualice su lista de fórmulas ( brew update
) y luego todo lo que necesita hacer es:
brew install fswatch
Instalación sin Homebrew
Escriba estos comandos en Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
Si no tiene un c
compilador en su sistema, es posible que necesite instalar las herramientas de línea de comandos Xcode o Xcode, ambas gratuitas. Sin embargo, si ese es el caso, probablemente deberías echarle un vistazo a homebrew .
Opciones adicionales para la fswatch
versión 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.