आपको अपना नाम बदलने / स्थानांतरित करने के लिए एक छोटी स्क्रिप्ट फ़ाइल बनाने की आवश्यकता है: इसे कॉल करें 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
एड पाने के लिए लगता है , लेकिन फ़ाइलों को किसी कारण से स्थानांतरित नहीं किया जा सकता है।