मैं किसी विशेष स्ट्रिंग के साथ निर्देशिका नामों की पुन: खोज कैसे कर सकता हूं जहां स्ट्रिंग केवल निर्देशिका नाम का हिस्सा है?
उदाहरण के लिए: निर्देशिका का नाम "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