2012-03-28 13 views
6

निम्न आदेश मैं केवल केवल निर्देशिका जो गैर छिपे हुए हैं मैं कैसे इस निम्न आदेश .Iwant का उपयोग कर छिपा निर्देशिका की अनदेखी करने, जबकि लॉग फ़ाइलखोजने आदेश खोज केवल गैर छिपा निर्देशिका

 find /home/tom/project/ -name '.log.txt' 


    ls /home/tom/project/ 
    dir1 
    dir2 
    .backup 
    .snapshot/ 
    .ignore/ 
खोज कर सकते हैं खोज करने के लिए चाहते हैं
+0

आप निर्देशिका जो छिपा हुआ नहीं कर रहे हैं और कोई छिपी माता-पिता क्या मतलब है? –

उत्तर

1

यह सभी फाइलें पायेगा लेकिन उन लोगों को अनदेखा करेगा जो एक डॉट इतनी छिपी हुई फाइलों से शुरू होते हैं।

find /home/tom/project/ -type f \(-iname ".log.txt" ! -iname ".*" \) 

संपादित करें: तो उन के ऊपर काम नहीं, तो इस चाल करना चाहिए। यह एक बेहतर regex है।

find /home/tom/project/ \(! -regex '.*/\..*' \) -type f -name ".log.txt" 

EDIT2:

निम्नलिखित छिपा फ़ोल्डरों को बाहर निकाल देगा लेकिन अनुरोध किया पैटर्न है कि छिपी हुई फ़ाइलें के लिए खोज करेंगे:

find /home/tom/project/ \(! -regex '.*/\..*/..*' \) -type f -name ".log.txt" 

EDIT3:

ग्रेप समाधान :) अगर यह काम नहीं करता है तो मैं खो गया हूं :)

find /home/tom/project/ \(! -regex '.*/\..*/..*' \) -exec grep -l ".log.txt" {} \; 

EDIT4:

क्या आपने सरल समाधानों का प्रयास किया है?

find /home/tom/project/ -type f -name ".log.txt" 

या

find /home/tom/project/ -type f -name "*" -exec grep -l ".log.txt" {} \; 
+0

यह अभी भी छिपी हुई निर्देशिकाओं को इंगित करता है .. – Rajeev

+0

क्या आप मुझे फ़ोल्डर्स का एक उदाहरण दे सकते हैं जो अभी भी पाता है? –

+0

ढूंढें: फाइल सिस्टम लूप का पता चला; './.snapshot/hourly.0 'में एक ही डिवाइस नंबर और इनोड एक निर्देशिका के रूप में है जो फाइल सिस्टम पदानुक्रम में 2 स्तर अधिक है। ढूंढें: फाइल सिस्टम लूप का पता चला; './.snapshot/hourly.1 'में एक ही डिवाइस नंबर और इनोड एक निर्देशिका के रूप में है जो फाइल सिस्टम पदानुक्रम में 2 स्तर अधिक है। – Rajeev

4

प्रयास करें

find /home/tom/project -type d -name '.*' -prune -o -name .log.txt -print