2010-05-13 6 views
5

मेरे पास find कमांड है जो मैं उन फ़ाइलों को ढूंढने के लिए चलाता हूं जिनके नाम foo हैं।प्रिंटिंग से कैसे ढूंढें Igit फ़ोल्डर्स?

मैं .git निर्देशिका को छोड़ना चाहता हूं। नीचे दिए गए आदेश को छोड़कर काम करता है यह एक कष्टप्रद .git किसी भी समय यह एक .git निर्देशिका छोड़ देता है तो प्रिंट:

find . (-name .git) -prune -o -name '*foo*' 

मैं मानक आउटपुट में मुद्रण से .git निर्देशिका को छोड़ दिया रोका जा सकता है कैसे?

+1

वाक्य रचना '(-name .git)' कोई मतलब नहीं है – msw

+0

राइट - मुझे लगता है कि यह होना चाहिए \\ (-name .git \\) , सही बात? –

उत्तर

1

इस एक का प्रयास करें:

find . -name '*foo*' | grep -v '\.git' 

यह अभी भी .git निर्देशिका में पार, लेकिन उन्हें प्रदर्शित नहीं करेगा। तो बस बेहतर दृश्यता के लिए

find . (-name .git) -prune -printf '' -o -name '*foo*' -print 
+0

ठीक है - मैंने पाया कि मुझे -printf '' डालना नहीं है - मुझे केवल आदेश के पीछे -प्रिंट रखना होगा! उदाहरण के लिए, यह काम करता है: खोजें। \ (-name .git \) -prune -o -name '* foo *' -प्रिंट धन्यवाद! –

+0

खोजने के बाद एक grep का उपयोग कई कारणों से एक बुरा चाल है। –

8

: या फिर आप अपने संस्करण के साथ गठजोड़ कर सकते हैं:

find . (-name .git) -prune -o -name '*foo*' | grep -v '\.git' 

तुम भी यह कर सकते हैं ग्रेप बिना

find -name '.git*' -prune -o -name '*foo*' -print 

यह भी .gitignore फ़ाइलों को छोड़ देता है; प्रिंटिंग को छोड़ने के लिए पीछे -प्रिंट पर ध्यान दें, -प्रून इसमें अवरुद्ध हो जाता है लेकिन बिना प्रिंट के प्रिंट प्रिंट करता है। मुड़ सी;

+0

फ़िल्टर करने के लिए बिल्टिन विकल्पों का उपयोग करने पर विचार करें यहां निर्देशिकाएं कैसे खोजें: ढूंढें। -नाम '.git \ *' -prune -o -name '\ * foo \ *' -मैक्सडेप 4-प्रकार डी-प्रिंट – Lionel

2
find . -not -wholename "./.git*" -name "*foo*" 

या, और अधिक सख्ती से, अगर आप .git देखने के लिए/लेकिन अन्य dirs जिसका नाम में खोजना चाहते हैं नहीं करना चाहती भी .git साथ शुरू होता है (.git-foo/bar/...)

find . -not -wholename "./.git" -not -wholename "./.git/*" -name "*foo*" 

थोड़ा Odder लेकिन अधिक कुशल क्योंकि यह पूरे .git dir prunes:

find . -not \(-wholename "./.git" -prune \) -name "*foo*" 
संबंधित मुद्दे