POSIX 7 solution:
find . ! -path . -type d
इस विशेष मामले (.
), mindepth
समाधान (24 बनाम 26 वर्ण) की तुलना में बेहतर golfs के लिए, हालांकि यह थोड़ा कठिन शायद है !
की वजह से टाइप करें।
कम अच्छी तरह अन्य निर्देशिकाओं बाहर करते हैं, इस वसीयत गोल्फ और सूखापन के लिए एक चर की आवश्यकता करने के लिए:
D="long_name"
find "$D" ! -path "$D" -type d
!
और -mindepth
के बीच मेरे निर्णय वृक्ष:
- स्क्रिप्ट? पोर्टेबिलिटी के लिए
!
का उपयोग करें।
- जीएनयू पर इंटरैक्टिव सत्र?
.
को बाहर करें? एक सिक्का फेंको।
long_name
को बाहर करें? -mindepth
का प्रयोग करें।
स्रोत
2013-06-30 10:32:03
यदि आपको एकाधिक पथों को बाहर करने की आवश्यकता है तो बस 'पथ/पथ/करें' करें! -पथ "/ पथ/पहले"! -पथ "/ पथ/दूसरा" 'यह एकमात्र तरीका है? –
@VincentDeSmet क्या आप केवल उन पथों को बाहर करना चाहते हैं, या वास्तव में उन में भर्ती नहीं करना चाहते हैं? यदि पथ हैं, तो आप 'ढूंढें/उपयोग कर सकते हैं! -regex '/ \ (एक \ | बी \) /.*' या अधिक सरल, grep के माध्यम से पाइप। रिकर्स नहीं करने के लिए, उपर्युक्त बहुत अक्षम होगा और आपको '-प्रून' का उपयोग करना चाहिए: http://stackoverflow.com/questions/1489277/how-to-use-prune-option-of-find-in-sh –
मेरा मुद्दा निम्नानुसार था: मैं 1 उप निर्देशिका को छोड़कर निर्देशिका में सबकुछ को दोबारा हटाना चाहता था। मैं निर्देशिका को बाहर करने के लिए 'grep' के साथ' find' का उपयोग कर रहा था लेकिन मूल निर्देशिका अभी भी वहां थी, जिससे सबकुछ हटाया जा सकता था। –