जवाबों:
सीधा बराबर है
find . -iname <filename>
जो सभी फाइलों और निर्देशिकाओं <filename>
को वर्तमान निर्देशिका और किसी भी उपनिर्देशिका, मामले की अनदेखी के मामले में सूचीबद्ध करेगा ।
यदि आपके खोज का संस्करण समर्थन नहीं करता है -iname
, तो आप -name
इसके बजाय उपयोग कर सकते हैं । ध्यान दें कि इसके विपरीत -iname
, -name
मामला संवेदनशील है।
यदि आप केवल नामक फाइलों को सूचीबद्ध करना चाहते हैं <filename>
, और निर्देशिकाओं को नहीं जोड़ते हैं-type f
find . -iname <filename> -type f
यदि आप वाइल्डकार्ड का उपयोग करना चाहते हैं, तो आपको इसके चारों ओर उद्धरण लगाने की आवश्यकता है, जैसे
find . -iname "*.txt" -type f
अन्यथा शेल इसका विस्तार करेगा।
जैसा कि दूसरों ने बताया है, आप भी कर सकते हैं:
find . | grep "\.txt$"
grep
नियमित अभिव्यक्तियों के आधार पर लाइनें प्रिंट करेंगे, जो वाइल्डकार्ड की तुलना में अधिक शक्तिशाली हैं, लेकिन एक अलग वाक्यविन्यास है।
देखें man find
और man grep
अधिक जानकारी के लिए।
<filename>
Userinput के लिए मार्कर के रूप में उपयोग करना कमांड-लाइन वातावरण में एक बुरी आदत है, जहां < and >
अधिकांश समय का विशिष्ट अर्थ होता है। मैं सुझाव देता हूं कि इसका उपयोग filename
करने के लिए सिर्फ FILENAME का उपयोग करें । ज्यादातर लोग समझेंगे, और वे, जो नहीं करेंगे, नुकसान हो सकता है जब यह न समझें कि वे कम-से-कम या अधिक-से-अधिक संकेत नहीं मारना चाहिए।
<filename>
बहुत सारे यूनिक्स दस्तावेज में एक सम्मेलन है, इसलिए मुझे लगता है कि लोगों के लिए इसके बारे में जागरूक होना उपयोगी है, लेकिन मैं मानता हूं FILENAME
कि इसे समझना आसान हो सकता है।
find -iname <filename>
यह बेहतर है क्योंकि यह केस-असंवेदनशील है जैसे डॉस
कुछ गोले अनुमति देते हैं ls **/filename
, जो काफी सुविधाजनक है।
shopt -s globstar; echo **/filename
के बराबर है find . -name "filename"
। यह zsh में भी काम करता है।
shopt -s globstar
, तो यह संभवतः आपके लिए काम करेगा। पुनरावर्ती ग्लोबिंग एक ऐसी विशेषता है जो केवल कुछ गोले में उपलब्ध है, और कभी-कभी, यह डिफ़ॉल्ट रूप से नहीं होता है।
shopt
कमांड विकल्प को सक्षम करता है globstar on
। अब यह एक आकर्षण की तरह काम करता है। बहुत बहुत धन्यवाद।
आप इसके साथ कर सकते हैं
find . | egrep filename
find . -regextype posix-egrep -regex '.*filename.*'
(अगर मैं नहीं जानता कि egrep
हिस्सा महत्वपूर्ण है, लेकिन आप इस्तेमाल egrep
अपने जवाब में तो मैं यह शामिल है)
grep
नियमित अभिव्यक्ति का उपयोग करता है, जबकि डॉस कमांड शेल वाइल्डकार्ड का उपयोग करता है।
find . -name "*.*"
DOS पृष्ठभूमि से आप वह नहीं करेंगे जो आप करना चाहते हैं। दस्ताने पहचानने के लिए पर्याप्त करीब हैं, हालांकि, जबकि रेक्सक्स एक पूरी तरह से नया जानवर हैं।
*.*.*
आधुनिक डॉस अर्थात विंडोज़ सीएमडी में क्या करता है? किस बारे में *.*.*.*
?
यह भी हो सकता है: tree -if </your/path>
या 'pwd'
एक मार्ग के रूप में
<filename>
वाइल्डकार्ड शामिल हैं, तो इसके आसपास के उद्धरणों का उपयोग करें, जैसेfind . -name '*.txt'
।