आरोहित शेयरों को खोजे बिना grep कमांड प्राप्त करें


34

जब मैंने खोज कमांड का उपयोग किया, तो मुझे लगभग हमेशा स्थानीय ड्राइव की खोज करने की आवश्यकता होती है। लेकिन, मेरे पास लगभग हमेशा सुपर बड़े नेटवर्क शेयर हैं और ये खोज में शामिल हैं। क्या खोज कमांड, grep और अन्य समान कमांड में उन लोगों को बाहर करने का एक आसान तरीका है? उदाहरण:

/ -नाम खोजें ।vimrc

जवाबों:


46

-fstype localखोजने के लिए विकल्प का उपयोग करें :

find / -fstype local -name .vimrc

यदि आप केवल विशिष्ट पथों को बाहर करना चाहते हैं, तो आप उपयोग कर सकते हैं -prune:

find / -name /path/to/ignore -prune -o -name .vimrc

अद्यतन करें:

localछद्म-fstype खोजने का संस्करण ओएस एक्स के साथ आता है में उपलब्ध है, लेकिन जीएनयू खोज (में नहीं है जीएनयू खोज द्वारा मान्यता प्राप्त fstypes )।

यदि आप GNU फ़ाइंड का उपयोग कर रहे हैं (जैसा कि अधिकांश लिनक्स सिस्टम पर उपयोग किया जाता है), तो आप इसके बजाय उपयोग करना चाहते हैं -mount:

find / -mount -name .vimrc

कि grep के लिए भी काम करता है?
फ्लैट्सम एन। जेत्सम

1
मुझे नहीं लगता कि grep के पास ऐसा कोई विकल्प है। मैंने आमतौर पर इस उत्तर में दिखाए गए अनुसार findपाइप का उपयोग किया था grep: superuser.com/questions/80033/… । हाल ही में, मैं ack( betterthangrep.com ) इसके बजाय उपयोग कर रहा हूं , लेकिन ackकेवल स्थानीय ड्राइव को खोजने का विकल्प नहीं लगता है।
डग हैरिस

मेरा संपादन इसे अस्वीकार कर दिया गया था, इसलिए इसे केवल एक टिप्पणी बना दिया। मूल रूप से पहला उदाहरण गलत है, क्योंकि आपको -pruneइसे जोड़ने की आवश्यकता है या यह अभी भी अवांछित फ़ाइल सिस्टम को पार कर जाएगा। दूसरा उदाहरण मुझे लगता है कि -pathइसके बजाय इसका मतलब था कि -nameयह मार्ग की उपेक्षा करेगा। एफडब्ल्यूआईडब्ल्यू ... आखिरी उदाहरण काम करता है, यह "वर्तमान फाइलसिस्टम" पर रहता है, ताकि दूसरों को पीछे न छोड़ें।
रोज़गारपैक

20

man find दिखाता है:

-xdev अन्य filesystems पर निर्देशिका उतरना मत।


2
-xdev-mountFWIW के समान ही है ... :)
rogerdpack

0

मूल प्रश्न केवल स्थानीय डिस्क पर खोजने के लिए था, इसलिए पूर्णता के लिए, यहां मैंने जो प्रयोग किया है;

for PART in `awk '(!/^#/ && $6 != "0" || $3 == "xfs" ) { print $2 }' /etc/fstab 2>/dev/null`; do find $PART -xdev -name .vimrc -print 2>/dev/null; done

जब तक आपका fstab ठीक से सेट हो जाता है, तब तक उसे केवल स्थानीय डिस्क की खोज करनी चाहिए; यानी, cifs mounts होना चाहिए कि अंतिम ध्वज सेट करने के लिए 0. मैंने xfs फाइलसिस्टम के लिए OR को शामिल किया था जब हमने RHEL7 पर जाना शुरू किया था, उन्हें 0 पर सेट किया जाना चाहिए क्योंकि वे इतने सारे पुनरारंभ के बाद डिस्क रीग करने के लिए नहीं हैं।

उम्मीद है की वो मदद करदे।

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