आपको अपना नाम बदलने / स्थानांतरित करने के लिए एक छोटी स्क्रिप्ट फ़ाइल बनाने की आवश्यकता है: इसे कॉल करें rnmv, कहें, और इसमें निम्न कमांड डालें:
f="${1#./}"; echo mv "$f" "${f%%/*}.${f##*.}"
भूलना मत chmod +x rnmv। फिर रूट डायरेक्टरी में जाएं और कमांड rnmvसे कॉल करें find:
cd {wherever temp2 root is}
find . -name "temp2.txt" -exec rnmv "{}" \;
जब आप खुश हैं कि सही हैं mvआदेशों बनाए जा रहे हैं, को दूर echoसे rnmvऔर अपने नाम बदलने / स्थानांतरित किया जाएगा।
एक अंतिम कार्य खाली उपनिर्देशिकाओं को हटाना है:
find . -name temp2 -exec rmdir "{}" \;
यह सुरक्षित है, क्योंकि rmdirइसमें फ़ाइलों के साथ एक निर्देशिका नहीं निकाली जाएगी। निर्देशिकाओं को खोजने के आदेश के आधार पर, आपको ABC / temp2 / temp2 जैसी संरचनाओं के लिए कमांड दोहराने की आवश्यकता हो सकती है, क्योंकि दूसरा हटाए जाने तक temp2 खाली नहीं होगा।
ध्यान दें कि यदि ABC, का कहना है कि उसके उपनिर्देशिकाओं में एक temp2.txt फ़ाइल अधिक है, तो प्रत्येक mvकमांड पिछले ABC.txt को अधिलेखित कर देगा, और केवल अंतिम पाया गया बाद में छोड़ दिया जाएगा।
echoएड पाने के लिए लगता है , लेकिन फ़ाइलों को किसी कारण से स्थानांतरित नहीं किया जा सकता है।