नियमित अभिव्यक्ति
रेगेक्स का उपयोग करने के लिए, आप कोशिश भी कर सकते हैं find-lisp-find-dired
। यह कमांड स्टैंडर्ड लिब की है। find-lisp , जो पूरी तरह से elisp में लिखा गया है यानी, आपको बाहरी find
प्रोग्राम इंस्टॉल करने की आवश्यकता नहीं है
।
उदाहरण के लिए, निम्नलिखित सभी फ़ाइलों को एक्सटेंशन के साथ '.el' निर्देशिका ~ के तहत दिखाता है।
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(मैच सम्मान case-fold-search
)।
वाइल्डकार्ड
यह ध्यान देने योग्य है कि अगले Emacs रिलीज़ (v26.1) के बाद से Dired फ़ाइल फ़ाइल तर्क के निर्देशिका भाग में wilcards का समर्थन करता है। इसका मतलब है कि निम्नलिखित काम करता है:
C-x d ~/soft/*/*.c RET
(मैच केस-संवेदी है)।
यह कमांड एक डेयर बफर में एक्सटेंशन '.c' के साथ सभी फाइलों को दिखाता है, '~ / सॉफ्ट' के तहत 2 डेप्थ लेवल । इसका मतलब है कि, '~ / soft / foo / bar.c' जैसी सभी फाइलें
सूचीबद्ध होंगी, लेकिन '~ / soft / qux.c'
और न ही '~ / soft / foo / baz / qux.c' जैसी फाइलें ।
वही लेकिन मामला असंवेदनशील:
C-x d ~/soft/*/*.[cC] RET
बक्शीश
यदि आप एक 'ls' के साथ elisp, 'ls-lisp' या 'eshell-ls' में लागू किए गए Dired चल रहे हैं, तो आप निम्न सिंटैक्सिस के साथ वाइल्डकार्ड से मेल खाने वाली सभी फ़ाइलों को पुन: सूचीबद्ध कर सकते हैं :
C-x d ~/soft/**/*.c RET
ध्यान दें '**'। इस स्थिति में वाइल्डकार्ड से मेल खाने वाले '~ / सॉफ्ट' के तहत सभी फाइलें दिखाई जाती हैं, यहां तक कि '~ / सॉफ्ट / qux.c' ।
हालाँकि, जब आप insert-directory-program
वाइल्डकार्ड विस्तार का उपयोग कर रहे होते हैं , सिस्टम शेल द्वारा बनाया जाता है; इसका मतलब है कि, यह पुनरावर्ती '**' सिंटैक्सिस तभी काम करता है जब यह आपके शेल द्वारा समर्थित हो। उदाहरण के लिए zsh इसका समर्थन करता है, लेकिन बैश नहीं करता है। पिछले आदेश को पूरा करने वाले अन्य गोले के रूप में:
C-x d ~/soft/*/*.c RET