खोज-आदेश का उपयोग करते समय अनुमति से वंचित स्पैम से बचें


21

मैं अक्सर सिंटैक्स के साथ फाइल खोजने की कोशिश करता हूं:

find . -name "filetofind"

हालाँकि यह आमतौर पर फ़ोल्डरों के बारे में कई पंक्तियों या त्रुटि रिपोर्टिंग (अनुमति अस्वीकृत) के परिणामस्वरूप होता है जहां अनुमति से इनकार किया जाता है। वहाँ किसी भी अन्य तरीके से इस स्पैम से बचने के लिए या त्रुटि-उत्पादन से उन्नत grepping का उपयोग कर रहा है?



जवाबों:


27

प्रयत्न

find . -name "filetofind" 2>/dev/null

यह stderrआउटपुट स्ट्रीम को रीडायरेक्ट करेगा , जिसका उपयोग सभी त्रुटियों की रिपोर्ट करने के लिए किया जाता है, जिसमें "एक्सेस इनकार" एक सहित, डिवाइस को शून्य करना है।


धन्यवाद, एक आकर्षण की तरह काम करता है :) मुझे लगता है कि ऐसा करने का एक उपनाम बनाए बिना इसे डिफ़ॉल्ट विकल्प बनाने का कोई आसान तरीका नहीं है।
user40167

नहीं, यह शेल के डिजाइन से है।
सफ़ेद रंग की

9

आप भी उपयोग कर सकते हैं -perm-prune अपठित निर्देशिकाओं में उतरने से बचने के और विधेय का (यह भी देखें कि मैं किस प्रकार "अनुमति से वंचित" प्रिंटआउट स्टेटमेंट को खोजने के कार्यक्रम से हटा सकता हूं? - यूनिक्स एंड लिनक्स स्टैक एक्सचेंज )

find . -type d ! -perm -g+r,u+r,o+r -prune -o -name "filetofind" -print

3

यदि आप अन्य त्रुटियां देखना चाहते हैं और आपके पास "अनुमति अस्वीकृत" नाम की फाइलें नहीं हैं तो यह "बेहतर" काम करेगा।

find . -name "filetofind" 2>&1 | grep -v 'permission denied' 

उलटा विकल्प के साथ grep के लिए आउटपुट को पुनर्निर्देशित करना।

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