2011-08-05 16 views
6

पर linux के inotify उपकरण खोल तरीकों को प्राप्त करने के लिनक्स में एक फ़ाइल पर नजर रखने के लिए, मैं इसकैसे OSX

#!/bin/bash 

# with inotify-tools installed, watch for modification of file passed as first param 
while inotifywait -e modify $1; do 
     # do something here 
done 

लेकिन कैसे मैं OSX में इस लक्ष्य को हासिल होगा की तरह inotify-उपकरणों का उपयोग कर सकते हैं?

उत्तर

5

उपयोग कर सकते हैं आप एक अजगर स्क्रिप्ट में इस रैप करने के लिए चाहते हैं, आप निगरानी, ​​जो दोनों लिनक्स और OSX के साथ काम करता उपयोग कर सकते हैं।

https://github.com/raphdg/baboon/commit/2c115da63dac16d0fbdc9b45067d0ab0960143ed

निगरानी भी एक खोल उपयोगिता watchmedo का आह्वान किया है::

watchmedo shell-command \ 
    --patterns="*.py;*.txt" \ 
    --recursive \ 
    --command='echo "${watch_src_path}"' \ 
    . 
3

हाँ, आप FSEvents API

+0

क्या इसे शैल स्क्रिप्ट में उपयोग किया जा सकता है? –

+1

नहीं, लेकिन पाइथन के लिए एक रैपर लाइब्रेरी है: http://pypi.python.org/pypi/MacFSEvents/0.2.4 – Baversjo

0

आप entr उपयोग कर सकते हैं

https://pypi.python.org/pypi/watchdog

यहाँ क्या यह प्रहरी के साथ pyinotify को बदलने के लिए की तरह लग रहा है उपकरण। उदाहरण उपयोग:

ls some_file | entr do_something 

ब्रू के माध्यम से मैक इंस्टॉल पर: brew install entr