-depth
करने के लिए प्राथमिक find
यह गहराई-प्रथम खोज करने के लिए कारण बनता है।
हालांकि, डिफ़ॉल्ट अनुक्रम है नहीं एक चौड़ाई-पहले खोज।
डिफ़ॉल्ट अनुक्रम को अनौपचारिक रूप से "गहराई-पहला ट्रैवर्सल" के रूप में वर्णित किया जा सकता है जो नोड्स को संभालता है जब वे बैकट्रैकिंग के दौरान ऐसा करने के बजाय पहली बार सामना करते हैं । "
मुझे पहले खोज के लिए चौड़ाई की वास्तविक आवश्यकता है। मैं find
इस तरह से कैसे व्यवहार कर सकता हूं ?
उदाहरण के लिए, निम्नलिखित सेटअप के साथ:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find
निम्नलिखित डिफ़ॉल्ट व्यवहार है:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
और -depth
, यह निम्नानुसार प्रदर्शन करता है:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
हालाँकि, जो मैं चाहता हूं वह निम्नलिखित (काल्पनिक) विकल्प है:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
दूसरे शब्दों में, मुझे आगे बढ़ने से पहले सभी फाइलों / डायरियों पर एक निश्चित गहराई find
पर प्रक्रिया / रिपोर्ट करने की आवश्यकता है ।
मैं यह कैसे कर सकता हूँ?
-bfs
चाहिए वह काफी नहीं होगा ... मेरे पास एक सरल स्क्रिप्ट है जो एक बड़ी GitLab परियोजना के लिए एक सूचकांक उत्पन्न करती है, जो GitLab Wiki में शामिल करने के लिए उपयुक्त है। यह निर्देशिका नामों के आधार पर हेडर को पदानुक्रमित बनाता है। यह बहुत अच्छा काम करता है, सिवाय इसके कि उदाहरण फ़ाइल संरचना में यह उपर्युक्त के तहत, अभिभावक शीर्षलेख के बजाय उप-धारक के delta
नीचे रखा जाएगा । charlie
alpha
find
आउटपुट वर्णानुक्रम में क्रमबद्ध है। पता नहीं क्यों ....
-bfs
यह काम में आ सकता है , भले ही यह इस उपयोग के मामले में पूरी तरह फिट न हो।
find
(कम से कम, केवल साथ नहींfind
)। क्या आप केवल फाइलों को सूचीबद्ध करना चाहते हैं, या क्या आप अन्य प्राइमरी का उपयोग करना चाहते हैं?