मैं किसी विशेष स्ट्रिंग के साथ निर्देशिका नामों की पुन: खोज कैसे कर सकता हूं जहां स्ट्रिंग केवल निर्देशिका नाम का हिस्सा है?
उदाहरण के लिए: निर्देशिका का नाम "8.0.3-99966_en" है, लेकिन मैं स्ट्रिंग के साथ निर्देशिकाओं की खोज करना चाहता हूं "99966"।
मैं किसी विशेष स्ट्रिंग के साथ निर्देशिका नामों की पुन: खोज कैसे कर सकता हूं जहां स्ट्रिंग केवल निर्देशिका नाम का हिस्सा है?
उदाहरण के लिए: निर्देशिका का नाम "8.0.3-99966_en" है, लेकिन मैं स्ट्रिंग के साथ निर्देशिकाओं की खोज करना चाहता हूं "99966"।
जवाबों:
आप find
कमांड का उपयोग कर सकते हैं :
find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print
उदाहरण:
find ~ -type d -name "*99966*" -print
-type d
अपने घर निर्देशिका ( ~
) से शुरू होने वाली सभी निर्देशिकाओं ( ) को ढूंढना चाहिए , जिनके नाम स्ट्रिंग "99966" ( -name "*99966*"
) हैं और उन्हें आउटपुट करें ( -print
)।
सभी "अनुमति अस्वीकृत" परिणामों से बचने के लिए, आप उपयोग कर सकते हैं:
find / -type d -name "*99966*" -print 2>/dev/null
अशक्त डिवाइस पर इस लेख को देखें और अधिक जानकारी के लिए मानक धाराओं पर यह एक ।
ऐसा करने का एक आसान तरीका उपयोग करना है find | egrep string
। यदि बहुत अधिक हिट हैं, तो -type d
खोजने के लिए ध्वज का उपयोग करें । जिस डायरेक्टरी ट्री को आप खोजना चाहते हैं, उसके शुरू में कमांड को रन करें, या फिर आपको डाइरेक्टरी को एक तर्क के find
रूप में भी सप्लाई करना होगा ।
इसका उपयोग करने का एक और तरीका है ls -laR | egrep ^d
।
और locate
कमान भी काम आती है:locate string