मैंने इसका उत्तर देखा है ।
आपको एक उदाहरण के रूप में, इनोटिफ़ाइट का उपयोग करने पर विचार करना चाहिए:
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
तब आपके शेल से आमतौर पर मिलने वाला कोई भी मानक कमांड होगा।