fswatch
fswatch là một chương trình nhỏ sử dụng API Mac OS X FSEvents để theo dõi một thư mục. Khi nhận được một sự kiện về bất kỳ thay đổi nào đối với thư mục đó, lệnh shell được chỉ định sẽ được thực thi bởi/bin/bash
Nếu bạn đang sử dụng GNU / Linux,
inotifywatch (một phần của
inotify-tools
gói trên hầu hết các bản phân phối) cung cấp chức năng tương tự.
Cập nhật: fswatch
hiện có thể được sử dụng trên nhiều nền tảng bao gồm BSD, Debian và Windows.
Cú pháp / Một ví dụ đơn giản
Cách mới có thể xem nhiều đường dẫn - cho các phiên bản 1.x trở lên :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
Lưu ý: Đầu ra số của -o
sẽ được thêm vào cuối xargs
lệnh nếu không cho -I{}
. Nếu bạn chọn sử dụng số đó, đặt {}
bất cứ nơi nào trong lệnh của bạn.
Cách cũ hơn cho các phiên bản 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
Cài đặt với Homebrew
Kể từ ngày 9/12/13, nó đã được thêm lại vào homebrew - yay! Vì vậy, hãy cập nhật danh sách công thức của bạn ( brew update
) và sau đó tất cả những gì bạn cần làm là:
brew install fswatch
Cài đặt không có Homebrew
Nhập các lệnh này vào Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
Nếu bạn không có c
trình biên dịch trên hệ thống của mình, bạn có thể cần cài đặt các công cụ dòng lệnh Xcode hoặc Xcode - cả hai đều miễn phí. Tuy nhiên, nếu đó là trường hợp, có lẽ bạn chỉ nên kiểm tra homebrew .
Tùy chọn bổ sung cho fswatch
phiên bả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.