मेरे पास उदाहरण के लिए TREE.wav, ONE.WAV है। मैं इसका नाम बदलकर पेड़ करना चाहता हूं। मैं लोअरकेस में सभी फ़ाइलों का नाम कैसे बदलूं?
मेरे पास उदाहरण के लिए TREE.wav, ONE.WAV है। मैं इसका नाम बदलकर पेड़ करना चाहता हूं। मैं लोअरकेस में सभी फ़ाइलों का नाम कैसे बदलूं?
जवाबों:
यदि आप टर्मिनल के साथ सहज हैं:
cd
और फिर विंडो में नाम बदलने के लिए फ़ोल्डर युक्त फ़ोल्डर को खींचें और छोड़ें।ls
और हिट दर्ज करें।यह कोड पेस्ट करें और एंटर दबाएं:
for f in *; do mv "$f" "$f.tmp"; mv "$f.tmp" "`echo $f | tr "[:upper:]" "[:lower:]"`"; done
ls
फिर से टाइप करें और हिट करें।(कुछ सुधार के लिए ट्विटर पर @bavarious का धन्यवाद, और केस-असंवेदनशील फाइल सिस्टम पर यह सुरक्षित बनाने के लिए नीचे जॉन व्हिटले को धन्यवाद।)
foo.txt
और FOO.TXT
, यह उनमें से एक को रोक सकता है।
mv "$f" "${f,,}"
याdeclare -l g=$f; mv "$f" "$g"
for f in *; do mv "$f" "$f.tmp"; mv "$f.tmp" "`echo $f | tr "[:upper:]" "[:lower:]"`"; done
जैसा कि पूछा गया सवाल सामान्य है, और महत्वपूर्ण भी है, इसलिए मैं अधिक सामान्य उत्तर प्रदान करना चाहता हूं:
सरलतम मामला (अधिकांश समय और मैक ओएस एक्स पर सुरक्षित है, लेकिन इस पर पढ़ें):
for i in * ; do j=$(tr '[:upper:]' '[:lower:]' <<< "$i") ; mv "$i" "$j" ; done
आपको फ़ाइल नाम (किसी भी OS) में रिक्त स्थान भी संभालना होगा:
IFS=$'\n' ; for i in * ; do j=$(tr '[:upper:]' '[:lower:]' <<< "$i") ; mv "$i" "$j" ; done
आपको उन फ़ाइल नाम को सुरक्षित रूप से संभालने की आवश्यकता है जो केवल केस-संवेदी फाइल सिस्टम में मामले से भिन्न होते हैं और लक्ष्य को अधिलेखित नहीं करते हैं (जैसे लिनक्स):
for i in * ; do j=$(tr '[:upper:]' '[:lower:]' <<< "$i") ; [ -e "$j" ] && continue ; mv "$i" "$j" ; done
मैक ओएस एक्स के बारे में ध्यान दें:
मैक का फाइलसिस्टम केस-असंवेदनशील है, केस-संरक्षण है।
हालाँकि, अस्थायी फ़ाइलों को बनाने की आवश्यकता नहीं है, जैसा कि स्वीकृत उत्तर और टिप्पणियों में सुझाया गया है, क्योंकि दो फ़ाइल नाम जो केवल मामले से भिन्न होते हैं, पहले स्थान पर मौजूद नहीं हो सकते, रेफ ।
यह दिखाने के लिए:
$ mkdir test
$ cd test
$ touch X x
$ ls -l
total 0
-rw-r--r-- 1 alexharvey wheel 0 26 Sep 20:20 X
$ mv X x
$ ls -l
total 0
-rw-r--r-- 1 alexharvey wheel 0 26 Sep 20:20 x