शेल समाधान के बारे में कोई विचार नहीं है, लेकिन (लिनक्स मानकर 1
) inotify
जाने का रास्ता हो सकता है ... इस उदाहरण को अनुकरण करते हुएtail -F
( देखेंpyinotify
) देखें, हो सकता है कि इसे पूरी निर्देशिका का अनुसरण करने के लिए एक आधार के रूप में इस्तेमाल किया जा सके ।
सामान्य तौर पर, inotify
निर्देशिकाओं की निगरानी कर सकते हैं (हवाला देते हुए man 7 inotify
)
Inotify_add_watch (2) को कॉल करते समय निम्नलिखित बिट्स को मास्क में निर्दिष्ट किया जा सकता है और पढ़े गए (2) द्वारा दिए गए मास्क फ़ील्ड में वापस लौटाया जा सकता है:
IN_ACCESS File was accessed (read) (*).
IN_ATTRIB Metadata changed, e.g., permissions, timestamps,
extended attributes, link count (since Linux 2.6.25),
UID, GID, etc. (*).
IN_CLOSE_WRITE File opened for writing was closed (*).
IN_CLOSE_NOWRITE File not opened for writing was closed (*).
IN_CREATE File/directory created in watched directory (*).
IN_DELETE File/directory deleted from watched directory (*).
IN_DELETE_SELF Watched file/directory was itself deleted.
IN_MODIFY File was modified (*).
IN_MOVE_SELF Watched file/directory was itself moved.
IN_MOVED_FROM File moved out of watched directory (*).
IN_MOVED_TO File moved into watched directory (*).
IN_OPEN File was opened (*).
जब एक निर्देशिका की निगरानी , घटनाओं तारांकित (*) से ऊपर निर्देशिका में फ़ाइलों के लिए हो सकता है, इस स्थिति में लौट आए inotify_event संरचना में नाम क्षेत्र निर्देशिका के भीतर फ़ाइल के नाम की पहचान के साथ चिह्नित।
(... और pyinotify
बारीकी से शोध के विकल्प)
1
: BSDs, एक ऐसी ही बात है kqueue
। हो सकता है कि एक क्रॉस-प्लेटफ़ॉर्म समाधान जीआईओ ( पायथन बाइंडिंग ) का उपयोग कर प्राप्त करने योग्य हो, क्योंकि यह एब्सट्रैक्शन परत के रूप में हो सकता है, बगल inotify
में भी उपयोग कर सकता हैkqueue