मैं किसी विशेष स्ट्रिंग के साथ निर्देशिका नामों की पुन: खोज कैसे कर सकता हूं जहां स्ट्रिंग निर्देशिका नाम का केवल एक भाग है


73

मैं किसी विशेष स्ट्रिंग के साथ निर्देशिका नामों की पुन: खोज कैसे कर सकता हूं जहां स्ट्रिंग केवल निर्देशिका नाम का हिस्सा है?

उदाहरण के लिए: निर्देशिका का नाम "8.0.3-99966_en" है, लेकिन मैं स्ट्रिंग के साथ निर्देशिकाओं की खोज करना चाहता हूं "99966"।

जवाबों:


95

आप findकमांड का उपयोग कर सकते हैं :

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

उदाहरण:

find ~ -type d -name "*99966*" -print

-type dअपने घर निर्देशिका ( ~) से शुरू होने वाली सभी निर्देशिकाओं ( ) को ढूंढना चाहिए , जिनके नाम स्ट्रिंग "99966" ( -name "*99966*") हैं और उन्हें आउटपुट करें ( -print)।


मैं खोज से एक निश्चित निर्देशिका कैसे निकाल सकता हूं? मुझे खोज करने की आवश्यकता है / लेकिन मुझे ऐसे टन / खरीद परिणाम मिलते हैं जिनकी मुझे परवाह नहीं है।
Kozuch

@ कुज़ुच (थोड़ी देर बाद!): आप निगेटिव grep का उपयोग कर सकते हैं, सिनफ सर्च को कमेंट में पाइप करना जैसे: खोजो <जो> | grep -v "/ proc" जो खोज स्ट्रिंग वाले सभी लाइनों को फ़िल्टर करेगा ।
जुआन लानुस

19

सभी "अनुमति अस्वीकृत" परिणामों से बचने के लिए, आप उपयोग कर सकते हैं:

find / -type d -name "*99966*" -print 2>/dev/null

अशक्त डिवाइस पर इस लेख को देखें और अधिक जानकारी के लिए मानक धाराओं पर यह एक ।


मेरे लिए काम करता है :) ~
smatthewenglish

8

आप आउटपुट को पाइप कर सकते grepहैं ताकि निर्देशिका नाम
कुछ हाइलाइट हो

find / -type d | grep "directory name"

/पूरे कंप्यूटर खोज करने के लिए इंगित करता है


@ आप सही हैं, मैंने उत्तर को संपादित कर दिया है। उस ओर इशारा करने के लिए धन्यवाद
Collin

3

ऐसा करने का एक आसान तरीका उपयोग करना है find | egrep string। यदि बहुत अधिक हिट हैं, तो -type dखोजने के लिए ध्वज का उपयोग करें । जिस डायरेक्टरी ट्री को आप खोजना चाहते हैं, उसके शुरू में कमांड को रन करें, या फिर आपको डाइरेक्टरी को एक तर्क के findरूप में भी सप्लाई करना होगा ।

इसका उपयोग करने का एक और तरीका है ls -laR | egrep ^d

और locateकमान भी काम आती है:locate string

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.