मैंने इसका उत्तर देखा है ।
आपको एक उदाहरण के रूप में, इनोटिफ़ाइट का उपयोग करने पर विचार करना चाहिए:
inotifywait -m /path -e create -e moved_to | while read path action file; do echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file done
मेरा प्रश्न यह है कि, उपरोक्त स्क्रिप्ट किसी भी प्रकार की फ़ाइलों के निर्माण के लिए एक निर्देशिका को देखती है, लेकिन मैं inotifywaitकेवल तभी रिपोर्ट करने के लिए कमांड को कैसे संशोधित करता हूं जब किसी निश्चित प्रकार / एक्सटेंशन की फ़ाइल बनाई जाती है (या निर्देशिका में स्थानांतरित की जाती है) - जैसे यह चाहिए रिपोर्ट जब कोई .xmlफ़ाइल बनाई जाती है।
मैंने क्या कोशिश की:
मैंने inotifywait --helpकमांड चलाया है , और कमांड लाइन विकल्प पढ़ा है। यह है --exclude <pattern>और --excludei <pattern>आदेशों को अपवर्जित (regex का उपयोग करके) कुछ प्रकार की फ़ाइलों को, लेकिन मैं करने के लिए कोई तरीका होना चाहिए बस शामिल एक खास प्रकार / एक्सटेंशन के फ़ाइलें।
pathऊपर का उपयोग करना शायद सबसे अच्छा चर नाम नहीं है यदि आप इसे पहली बार एक शेल में खेलना चाहते हैं। यदि आप इसका उपयोग करते हैं, तो आप कमांड और सब कुछ का उपयोग करने में सक्षम नहीं होंगे क्योंकि यह मूल रूप से केवल मानक को ओवरराइड करता हैPATH। इसलिए मैंfpathइसके बजाय एक वैकल्पिक var नाम का उपयोग करने की सलाह देता हूं । यानीwhile read fpath action fileतब आपके शेल से आमतौर पर मिलने वाला कोई भी मानक कमांड होगा।