से मिलान करने वाली कई निर्देशिकाओं का नाम बदलें। मैं एक नाम से संबंधित सभी निर्देशिकाओं का नाम बदलना चाहता हूं जो नाम से मेल खाते हैं। उदाहरण के लिए:पैटर्न
basedir/
में, मेरे पास है:
- foo/bar/blah
- my/bar/foo
- some/bar/foo1
- other/foo/bar
मैं bar
मिलान सभी निर्देशिकाओं का नाम बदलने के लिए करना चाहते हैं, लेकिन मैं उपसर्ग भाग की रक्षा करना चाहते हैं।
find
के साथ, मैं आसानी से इस तरह सभी निर्देशिकाओं की एक सूची बना सकते हैं:
find . -name repositoryunit -type d
हालांकि, मैं कैसे -exec mv {} ...
(या शायद अन्य ऐप्लिकेशन के साथ गठबंधन) ताकि उपसर्ग संरक्षित है का उपयोग कर सकते हैं?
अग्रिम में बहुत धन्यवाद!
ध्यान रखें, कि अगर खोजी गई निर्देशिका में पहले से ही एक निर्देशिका "बाज़" है, तो "बार" इसमें स्थानांतरित हो जाएगा। – mkudlacek
यदि आपको 'ढूंढें:' ***** ': ... आदेश को निष्पादित करने के बाद कोई ऐसी फ़ाइल या निर्देशिका' नहीं है, तो' -depth' जोड़ें, जो निर्देशिका को स्वयं त्रुटियों को हटाने से पहले निर्देशिका सामग्री को संसाधित करेगा। – lepe