लिनक्स फाइल बनाने, संशोधित करने, हटाने जैसी सभी फाइल सिस्टम घटनाओं की निगरानी के लिए एक अच्छा इंटरफ़ेस प्रदान करता है। इंटरफ़ेस inotify
सिस्टम कॉल का परिवार है, इन कॉलों का लाभ उठाने वाली उपयोगकर्ता सुविधाएं inotify-tools
उबंटू में पैकेज (ब्रह्मांड भंडार पर उपलब्ध) द्वारा प्रदान की जाती हैं । यदि आपके पास यह पहले से नहीं है, तो इसके द्वारा स्थापित करें:
sudo apt-get install inotify-tools
inotify-tools
प्रदान करता है inotifywait
और inotifywatch
बायनेरिज़, हमें पहले वाले की आवश्यकता है।
इसलिए आप asciidoctor -q some_file
किसी भी .adoc
फाइल को संशोधित करने पर कमांड चलाना चाहते हैं ( some_file
उस से बदल दिया जाएगा), यदि ऐसा है तो मान लें कि आपकी .adoc
फाइलें निर्देशिका में हैं /foo/bar
, आप घड़ी सेट कर सकते हैं:
inotifywait -qm --event modify --format '%w' /foo/bar/*.adoc
-q
शांत मोड को सक्षम करता है, inotifywait
स्वयं से कोई जानकारी नहीं
-m
मॉनिटर मोड को सक्षम करता है, अन्यथा यह पहली घटना के बाद बाहर निकल जाएगा
--event modify
, हम केवल modify
इवेंट में रुचि रखते हैं यानी जब कोई फाइल संशोधित होती है। अन्य संभावित मूल्यों में शामिल हैं open
, close
आदि।
--format %w
, हम केवल उस फ़ाइल का नाम चाहते हैं जिसे अन्य जानकारी के बजाए संशोधित किया गया है क्योंकि हम फ़ाइल नाम का उपयोग किसी अन्य कमांड के इनपुट के रूप में करेंगे
/foo/bar/*.adoc
निर्देशिका के .adoc
तहत सभी फ़ाइलों के लिए विस्तारित किया जाएगा/foo/bar
अब ऊपर आपको फ़ाइल नाम दिखाएगा जब भी कोई संशोधित किया जाता है, अब फ़ाइल नाम पर कमांड को चलाने के लिए (यह मानते हुए कमांड एसटीडीआईएन के माध्यम से तर्क लेता है):
inotifywait -qm --event modify --format '%w' /foo/bar/*.adoc | asciidoctor -q
आप निर्देशिका पर एक पुनरावर्ती घड़ी भी सेट कर सकते हैं, आपको तब grep
केवल वांछित फ़ाइलों को फ़िल्टर करने के लिए उपयोग करने की आवश्यकता होगी । यहाँ -r
निर्देशिका पर पुनरावर्ती रूप से ( ) सेट करना /foo/bar
और grep
केवल .adoc
फ़ाइलों को फ़िल्टर करने के लिए उपयोग करना :
inotifywait -qrm --event modify --format '%w%f' /foo/bar | grep '\.adoc$' | asciidoctor -q
जब निर्देशिकाओं को देखते हुए आउटपुट स्वरूप निर्दिष्ट होता है %w
, तो वह निर्देशिका नाम के रूप में होता है, इसलिए हमें %f
फ़ाइल नाम प्राप्त करने की आवश्यकता होती है। फाइलें देखते समय, %f
खाली स्ट्रिंग को हल करेगा।
ध्यान दें, आप inotifywait
डेमॉन ( -d
) मोड में भी चला सकते हैं , आप पूरी चीज़ को स्क्रिप्ट भी कर सकते हैं, और / या बैकग्राउंड में चला सकते हैं, और / या इसके साथ और भी अन्य विकल्प खेल सकते हैं।
इसके अलावा, asciidoctor
यदि आप चाहें, तो आप अपनी पसंद के किसी भी अन्य कमांड से बदल सकते हैं।
man inotifywait
अधिक विचार प्राप्त करने के लिए जाँच करें ।