मैक ओएस में कमांड लाइन के माध्यम से फ़ाइलों के फ़ाइल एक्सटेंशन कैसे बदलें

कमांड लाइन उपयोगकर्ताओं को निर्देशिका में फ़ाइलों के समूह के फ़ाइल एक्सटेंशन को बदलने और नाम बदलने में मदद मिल सकती है। उदाहरण के लिए, मान लीजिए कि आपके पास फाइल एक्सटेंशन ".txt" के साथ फाइलों का बैच है लेकिन आप चाहते हैं कि वे सभी फाइल एक्सटेंशन ".py" हों। मैक ओएस / ओएस एक्स की कमांड लाइन पर फ़ाइल एक्सटेंशन के समूह को बदलने के लिए हम सरल बैश स्क्रिप्टिंग पर भरोसा करके यहां प्रदर्शित करने जा रहे हैं, लेकिन यह लिनक्स और अन्य यूनिक्स स्वादों में भी काम करेगा।


शुरुआत से पहले, एहसास करें कि यह फ़ाइल प्रकार नहीं बदल रहा है, यह केवल फ़ाइल एक्सटेंशन को बदल रहा है। इसके अतिरिक्त, यह walkthrough दृष्टिकोण जानबूझकर कमांड लाइन का उपयोग कर रहा है और इस प्रकार अधिक उन्नत उपयोगकर्ताओं के लिए लक्षित है। हालांकि, टर्मिनल ऐसा करने का एकमात्र तरीका नहीं है, और इसलिए यदि यह आपके उपयोगकर्ता कौशल सेट के लिए बहुत उन्नत या अप्रासंगिक है तो याद रखें कि मैक ओएस मैक ओएस में बैच का नाम बदलने और बैच परिवर्तन फ़ाइल एक्सटेंशन दोनों में सरल टूल प्रदान करता है खोजक भी, जिनमें से कोई भी कमांड लाइन की आवश्यकता नहीं है। ठीक? एक साधारण एक लाइन बैश स्क्रिप्ट का उपयोग कर कमांड लाइन दृष्टिकोण पर ठीक है।

जिस तरह से आप हमेशा उन फ़ाइलों का प्रतिलिपि बनाना चाहते हैं जो आप संशोधित कर रहे हैं, विशेष रूप से यदि आप कमांड लाइन में नए हैं। ऐसा करने में विफलता के परिणामस्वरूप डेटा हानि हो सकती है, टर्मिनल टाइप या गलतियों के लिए क्षमा नहीं कर रहा है, इसलिए अपने बैकअप को न छोड़ें।

कमांड लाइन के माध्यम से निर्देशिका में सभी फ़ाइल एक्सटेंशन कैसे बदलें

आइए कुछ उदाहरण लें। पहले उदाहरण में, हम वर्तमान कार्यशील निर्देशिका में ".txt" एक्सटेंशन के साथ सभी फ़ाइलों को बदलने जा रहे हैं और उन्हें ".py" में बदल सकते हैं। मान लें कि आप निर्देशिका में हैं जहां आप वर्तमान निर्देशिका में सभी फ़ाइलों को एक नई फ़ाइल एक्सटेंशन में बदलना चाहते हैं, यहां उपयोग करने के लिए वाक्यविन्यास है:

for file in *.txt; do mv "$file" "${file%.txt}.py"; done

नोट यह वाइल्डकार्ड * का अर्थ है * ".txt" फ़ाइल एक्सटेंशन से मेल खाने वाली मौजूदा निर्देशिका में कुछ भी और सबकुछ बदल जाएगा। "Txt" के कई उदाहरणों और "py" के एक उदाहरण को भी ध्यान दें, जिनमें से आप अपनी आवश्यकताओं के अनुरूप बदलना चाहते हैं।

यह सब एक सरल लूप बना रहा है जहां वाइल्डकार्ड और प्रारंभिक फ़ाइल एक्सटेंशन से मेल खाने वाली फाइलें पाई जाती हैं, और फिर उन फ़ाइलों को प्रारंभिक फ़ाइल एक्सटेंशन से प्रतिस्थापन में स्थानांतरित करने के लिए "mv" कमांड निष्पादित करते हैं। बहुत आसान, है ना?

आइए एक और उदाहरण लें, मान लें कि हमारे पास वर्तमान निर्देशिका में "blahblah.jpg.JPEG" जैसे फ़ाइल नामों के साथ छवि फ़ाइलों का संग्रह है, लेकिन हम वास्तव में चाहते हैं कि सभी के पास कम अनावश्यक और पढ़ने के लिए आसान फ़ाइल का नाम हो "blazblah.jpeg"। उस स्थिति में, वाक्यविन्यास निम्न की तरह दिखेगा:

for file in *.jpg.JPEG; do mv "$file" "${file%.jpg.JPEG}.jpeg"; done

फ़ाइल एक्सटेंशन बदलने के लिए कमांड लाइन दृष्टिकोण काफी तेज़ है और फ़ाइल एक्सटेंशन को बिना किसी चेतावनी संवाद या पुष्टिकरण के बदल दिया जाएगा।

और एक बार फिर से दोहराने के लिए, यह किसी भी फ़ाइल प्रकार को परिवर्तित करने या फ़ाइल एक्सटेंशन नाम के अलावा कुछ भी बदलने के लिए नहीं है।

कमांड लाइन के माध्यम से निर्देशिका में फ़ाइलों के फ़ाइल एक्सटेंशन का एक समूह बदलने के लिए एक बेहतर तरीका पता है? बस कुछ अन्य महान कमांड लाइन युक्तियों के माध्यम से ब्राउज़ करना चाहते हैं (यहां जाएं)? हमें टिप्पणियों में अपने विचार बताएं!