2012-03-06 23 views
5

मैं अपनी कार्य निर्देशिका से सभी फाइलों 'एम *' को खोजने के लिए खोज कमांड का उपयोग करने और निर्देशिका क्रम में परिणाम प्रदर्शित करने का प्रयास कर रहा हूं।निर्देशिका आदेश में आदेश सूची परिणाम

इसके बजाय यह क्रमबद्ध क्रम में परिणाम प्रदर्शित करता रहता है जो कुछ गहरी निर्देशिकाओं को पहले सूचीबद्ध करने का कारण बनता है क्योंकि वे क्रम में वर्णानुक्रम में हैं।

$ find -name 'M*' 
./MyFourth 
./s/MyFirst 
./s/v/b/MyThird 
./s/v/MySecond 

मैं इसे इस क्रम में होना चाहते हैं:

./MyFourth 
./s/MyFirst 
./s/v/MySecond 
./s/v/b/MyThird 

आपकी मदद के लिए धन्यवाद

+0

पायथन, रूबी, perl ...? –

+0

http://stackoverflow.com/a/120701/650405 –

उत्तर

4

अगर मैं सही ढंग आप "निर्देशिका आदेश" से क्या मतलब समझते हैं, यह मदद करनी चाहिए:

find -name 'M*' -printf '%p\t%d\n' | sort -n -k2 | cut -f 1 

यह निर्देशिका पेड़ में उनकी गहराई से क्रमबद्ध फ़ाइलों को प्रिंट करता है।

+1

दुर्भाग्य से निर्देशिका की सामग्री और इसकी उपनिर्देशिका की सूची को अलग करता है। – blueshift

1
$ find . -name 'M*' | awk -F/ '{print NF,$0}' | sort -k1,1n -k2 | cut -d' ' -f 2- 
./MyFourth 
./s/MyFirst 
./s/v/MySecond 
./s/v/b/MyThird 
संबंधित मुद्दे