Fswatch
fswatch ist ein kleines Programm, das die Mac OS X FSEvents API nutzt, um ein Verzeichnis zu überwachen. Wenn ein Ereignis über eine Änderung in diesem Verzeichnis empfangen wird, wird der angegebene Shell-Befehl ausgeführt von /bin/bash
Wenn Sie mit GNU/Linux arbeiten, inotifywatch (Teil des inotify-tools
Paket auf den meisten Distributionen) bietet ähnliche Funktionalität.
Aktualisierung: fswatch
kann jetzt auf vielen Plattformen verwendet werden, darunter BSD, Debian und Windows.
Syntax / Ein einfaches Beispiel
Der neue Weg, der mehrere Pfade beobachten kann - für Versionen 1.x und höher :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
Hinweis: Die Nummer, die von -o
wird an das Ende der Datei xargs
Befehl, wenn nicht für die -I{}
. Wenn Sie sich dafür entscheiden, diese Nummer zu verwenden, setzen Sie {}
irgendwo in Ihrem Kommando.
Der ältere Weg für Versionen 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
Installation mit Homebrew
Seit dem 12.9.13 wurde sie wieder in die Datenbank aufgenommen. selbstgebaut - juhu! Also, aktualisieren Sie Ihre Formelliste ( brew update
) und dann müssen Sie nur noch Folgendes tun:
brew install fswatch
Installation ohne Homebrew
Geben Sie diese Befehle ein Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
Wenn Sie keine c
Compiler auf Ihrem System benötigen, müssen Sie möglicherweise Xcode oder die Xcode-Befehlszeilentools installieren - beide sind kostenlos. Wenn dies jedoch der Fall ist, sollten Sie wahrscheinlich nur Homebrew ausprobieren .
Zusätzliche Optionen für 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.