मैं किसी स्क्रिप्ट में विरोध के रूप में टर्मिनल में, कुछ फ़ोल्डर और किसी सबफ़ोल्डर में सभी पीडीएफ फाइलों को ढूंढने की कोशिश कर रहा हूं। मैं लिनक्स के लिए भी काफी नया हूं, इसलिए माफी माँगता हूं अगर मुझे कुछ खास याद आती है, या शायद मेरी विशेष समस्या का निदान करने के लिए महत्वपूर्ण है।किसी निश्चित पैटर्न से मेल खाने वाली सभी फ़ाइलों को खोजने के लिए ls के साथ ग्लोबिंग
मैं बैश 4.1.5 (1) -release (i486-पीसी-linux-gnu) का उपयोग कर रहा है, और ग्लोब और extglob भाव के बारे में गूगल पर के बारे में कुछ poking किया है, और यह वाक्य रचना मैं का उपयोग करना चाहिए प्रकट होता है हालांकि यह कुछ भी नहीं पाता है के बाद से वहाँ कोई वर्तमान फ़ोल्डर ./
में पैटर्न *.pdf
मिलान फ़ाइल है
$ ls **.pdf
है;
ls: cannot access **.pdf: No such file or directory
PDF को कहीं और सब-फ़ोल्डर के बीच 1 और 5 गहरी (हर सबफ़ोल्डर 1-गहरे में विशेष रूप से), जिनमें से कुछ मैं जाँच करके देख सकते हैं कर रहे हैं,: इसे पढ़ने के लिए **
*
के रूप में चाहते हैं के लिए प्रकट होता
$ ls */*.pdf
इसलिए, ls
ठीक से काम कर रहा प्रतीत होता है। इसका मैनुअल बहुत उपयोगी नहीं प्रतीत होता है, क्योंकि मैं देख सकता हूं कि ls
पर -R
ध्वज के साथ हम किसी भी प्रयोग का उपयोग कर सकते हैं, जो उपरोक्त किसी भी मामले में समस्या का समाधान नहीं करता है।
मैंने extglob पैटर्न का उपयोग करने की कोशिश की (सुनिश्चित करें कि उन्हें shopt
के साथ चालू करें)। मैं ls */*?(.)pdf
के साथ अपनी गहराई-1 फाइलें देख सकता हूं, लेकिन मैं ls .*(/*)pdf
या ls .*(/*).pdf
के साथ कुछ भी नहीं देख सकता, यहां तक कि एक उपनिर्देशिका के भीतर भी जहां पीडीएफ हैं।
मैंने कहीं और पढ़ा है (.gitignore
फ़ाइल को एक गिट भंडार में संदर्भित करता है) कि **
पैटर्न हर किसी के लिए काम नहीं करता है।
क्या यह मुझे प्रभावित कर सकता है, और मैं इसे कैसे उपाय कर सकता हूं (आदर्श रूप से सुपरसुर विशेषाधिकारों के बिना)? क्या यह (या कुछ संबंधित समस्या) extglob कार्यक्षमता को भी प्रभावित कर सकता है?