लिनक्स में सिस्टम के लिए कमांड्स निष्पादित करने के लिए डिफ़ॉल्ट शेल बैश (उर्फ बोर्न अगेन शेल) है। अधिकांश प्रोग्रामर cmd पर बैश को पसंद करते हैं क्योंकि बैश द्वारा प्रदान की जाने वाली लचीलेपन और शक्तिशाली कमांड लाइन इंटरप्रेटर के कारण। हालांकि, अधिकांश उपयोगकर्ताओं को अभी भी बैश में स्पेस वाले फाइलनामों को पास करने को संभालने की कोशिश करते समय समस्याएं होंगी। ऐसा इसलिए है क्योंकि स्पेस को बैश में उसी तरह नहीं माना जाता जैसे वे फाइल नामों में होते हैं।
बैश द्वारा स्पेस वाले फाइलनाम को क्यों नहीं पहचाना जाता?
बैश में, यदि आप बिना एस्केप कैरेक्टर (\) या कोटेशन्स के कई शब्द टाइप करते हैं, तो यह सभी शब्दों को आर्गुमेंट्स मानेगा। यह सभी ऑपरेशन्स पर लागू होता है, चाहे आप 'cd' से डायरेक्टरी बदल रहे हों या 'cat' कमांड्स से फाइलें एक्सेस करने का प्रयास कर रहे हों। इनका उपयोग करने के बाद आप जो कुछ भी लिखते हैं उसे एक आर्गुमेंट माना जाएगा। उदाहरण के लिए:
cat file name.txt
नोट: आपका फाइलनाम कुछ भी हो सकता है लेकिन इस लेख के लिए, हम उदाहरण के रूप में "file name.txt" का उपयोग करेंगे।
यहां 'cat' कमांड file और name को एक सिंगल आर्गुमेंट के बजाय दो आर्गुमेंट्स मानेगा। हालांकि, यदि आप एस्केप कैरेक्टर या कोटेशन्स का उपयोग करते हैं तो बैश शेल उसे एक सिंगल आर्गुमेंट मानेगा, जो "file name.txt" होगा।
बैश में स्पेस वाले फाइलनाम
नाम में स्पेस के लिए कुछ विधियां उपयोग की जा सकती हैं। सबसे अच्छी प्रैक्टिस भविष्य में फाइल नामों के लिए स्पेस से बचना है। एक सरल विधि होगी उस फाइल का नाम बदलना जिसे आप एक्सेस करने का प्रयास कर रहे हैं और स्पेस हटाना। कुछ अन्य विधियां फाइल नाम पर सिंगल या डबल कोटेशन्स का उपयोग करना या स्पेस से ठीक पहले एस्केप (\) सिंबल का उपयोग करना है। हम आपको यह दिखाने के लिए लागू उदाहरणों के साथ विधियां प्रदान करेंगे कि यह कैसे काम करता है।
विधि 1: सिंगल और डबल कोटेशन्स का उपयोग करना
- Ctrl + Alt कुंजियों को दबाए रखें और T दबाकर Terminal खोलें।
- अब उस डायरेक्टरी में बदलें जहां फाइल स्थित है।
(आप कमांड 'cat' के बाद टर्मिनल में फाइल को ड्रैग एंड ड्रॉप भी कर सकते हैं, जो फाइल पाथ/डायरेक्टरी पर स्वचालित रूप से कोटेशन्स डाल देगा)
cd Desktop
नोट: Desktop को उस स्थान से बदला जा सकता है जिसे आप एक्सेस करने का प्रयास कर रहे हैं।
- स्पेस वाले नाम की टेक्स्ट फाइल पढ़ने के लिए निम्न कमांड टाइप करें:
cat 'file name.txt'
याcat "file name.txt"
- सिंगल और डबल कोटेशन्स का परिणाम समान होगा। कुछ मामलों में, आपको दोनों को आजमाने की जरूरत है और देखें कि कौन सा काम करता है।
विधि 2: बैकस्लैश एस्केप कैरेक्टर का उपयोग करना
- Ctrl + Alt कुंजियों को दबाए रखें और T दबाकर Terminal खोलें।
- निम्न कमांड का उपयोग करके उस डायरेक्टरी में बदलें जहां फाइल स्थित है।
cd Desktop
नोट: Desktop के स्थान पर अपना स्थान नाम डालें।
- अब कमांड टाइप करें और नाम में जहां भी स्पेस हो वहां एस्केप कैरेक्टर का उपयोग करें:
cat file\ name.txt
बोनस: कोटेशन्स और एस्केप का उपयोग
कभी-कभी जब आप कमांड में डायरेक्टरी का उपयोग कर रहे होते हैं, तो समग्र पाथ पर कोटेशन्स उपयोग करने के परिणाम हो सकते हैं। ऐसा इसलिए है क्योंकि 'mv' या 'cp' जैसी कुछ कमांड्स पाथ को फाइल सोर्स मान लेंगी यदि पूरे पर कोटेशन उपयोग किया जाता है। आपको सोर्स और डेस्टिनेशन दोनों के लिए व्यक्तिगत रूप से कोटेशन्स प्रदान करने की आवश्यकता है ताकि 'cp' जैसी कमांड्स ठीक से काम कर सकें। आप नीचे दिए गए उदाहरण को भी देख सकते हैं जो आपको दिखाएगा कि पाथ के लिए एस्केप कैरेक्टर का उपयोग करना बहुत अधिक जटिल है और उपयोगकर्ता इसके साथ गलती कर सकते हैं।