चूंकि बैश 4 (भी zsh सहित) एक नया ग्लोबिंग विकल्प ( globstar
) जोड़ा गया है जो **
सेट होने पर पैटर्न को अलग तरीके से व्यवहार करता है ।
यह वाइल्डकार्ड पैटर्न से मेल खा रहा है और मेल खाने वाली फाइल और डायरेक्टरी के नामों को मिलान करके वाइल्डकार्ड पैटर्न को कमांड आइटम से बदल देता है।
आम तौर पर जब आप उपयोग करते हैं **
, तो यह समान काम करता है *
, लेकिन यह सभी निर्देशिकाओं को पुनरावर्ती (लूप की तरह) पुन: बनाता है।
यह देखने के लिए कि क्या यह सक्षम है, इसे shopt globstar
(स्क्रिप्टिंग में, उपयोग करके shopt -q globstar
) देखें।
उदाहरण **.py
केवल वर्तमान निर्देशिका के लिए काम करेगा, क्योंकि यह उन निर्देशिकाओं की सूची नहीं देता है, जो पुनरावृत्ति हो सकती हैं, इसलिए आपको कई निर्देशिका-स्तरीय वाइल्डकार्ड का उपयोग करने की आवश्यकता है **/*.py
, इसलिए यह अधिक गहराई तक जा सकता है।
कृपया SO कुछ सिंटैक्स परीक्षणों पर खोजें जो मैंने सभी फ़ाइलों को पुनरावर्ती खोजने के लिए किया था।
nullglob