fswatch
fswatchเป็นโปรแกรมขนาดเล็กที่ใช้ Mac OS X FSEvents API เพื่อตรวจสอบไดเรกทอรี เมื่อได้รับเหตุการณ์เกี่ยวกับการเปลี่ยนแปลงใด ๆ ในไดเร็กทอรีนั้นคำสั่งเชลล์ที่ระบุจะถูกเรียกใช้งานโดย/bin/bash
หากคุณใช้ GNU / Linux
inotifywatch (เป็นส่วนหนึ่งของ
inotify-tools
แพ็คเกจสำหรับการแจกจ่ายส่วนใหญ่) จะมีฟังก์ชั่นที่คล้ายกัน
อัปเดต: fswatch
ตอนนี้สามารถใช้ได้กับหลาย ๆ แพลตฟอร์มรวมถึง BSD, Debian และ Windows
ไวยากรณ์ / ตัวอย่างง่ายๆ
วิธีใหม่ที่สามารถรับชมได้หลายเส้นทาง - สำหรับเวอร์ชั่น 1.x และสูงกว่า :
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
หมายเหตุ: การส่งออกโดยจำนวน-o
จะได้รับการเพิ่มในตอนท้ายของคำสั่งหากไม่ได้สำหรับxargs
-I{}
หากคุณเลือกที่จะใช้หมายเลขนั้นให้วางที่{}
ใดก็ได้ในคำสั่งของคุณ
วิธีที่เก่ากว่าสำหรับเวอร์ชั่น 0.x :
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
ติดตั้งด้วย Homebrew
ตั้งแต่วันที่ 9/12/56 มันถูกเพิ่มเข้ามาในhomebrew - yay! ดังนั้นอัปเดตรายการสูตรของคุณ ( brew update
) จากนั้นทั้งหมดที่คุณต้องทำคือ:
brew install fswatch
การติดตั้งโดยไม่ต้อง Homebrew
พิมพ์คำสั่งเหล่านี้ใน Terminal.app
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
หากคุณไม่มีc
คอมไพเลอร์ในระบบของคุณคุณอาจต้องติดตั้ง Xcode หรือเครื่องมือบรรทัดคำสั่ง Xcode - ทั้งฟรี แต่ถ้าเป็นกรณีที่คุณอาจจะเป็นเพียงแค่ตรวจสอบ homebrew
ตัวเลือกเพิ่มเติมสำหรับfswatch
เวอร์ชั่น 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.