fswatch
O fswatch é um pequeno programa que usa a API do Mac OS X FSEvents para monitorar um diretório. Quando um evento sobre qualquer alteração nesse diretório é recebido, o comando shell especificado é executado por/bin/bash
Se você usa o GNU / Linux, o
inotifywatch (parte do
inotify-tools
pacote na maioria das distribuições) fornece funcionalidade semelhante.
Atualização: fswatch
agora pode ser usado em várias plataformas, incluindo BSD, Debian e Windows.
Sintaxe / Um exemplo simples
A nova maneira de observar vários caminhos - para as versões 1.xe superiores :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
Nota: O número gerado por -o
será adicionado ao final do xargs
comando, se não for o -I{}
. Se você optar por usar esse número, coloque {}
em qualquer lugar do seu comando.
A maneira mais antiga para as versões 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
Instalação com Homebrew
A partir de 9/12/13, foi adicionado novamente ao homebrew - yay! Portanto, atualize sua lista de fórmulas ( brew update
) e tudo o que você precisa fazer é:
brew install fswatch
Instalação sem Homebrew
Digite estes comandos em Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
Se você não possui um c
compilador em seu sistema, pode ser necessário instalar as ferramentas de linha de comando Xcode ou Xcode - ambas gratuitas. No entanto, se for esse o caso, você provavelmente deve verificar o homebrew .
Opções adicionais para a fswatch
versão 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.