बैश में पथ और विस्तार के बिना फ़ाइल बेसनाम कैसे निकालें I

Baisa Mem Patha Aura Vistara Ke Bina Fa Ila Besanama Kaise Nikalem I



किसी भी प्रमुख निर्देशिका घटकों को हटाकर किसी दिए गए पथ से किसी फ़ाइल या निर्देशिका के आधार नाम को पुनः प्राप्त करने के लिए बेसनेम कमांड का उपयोग आमतौर पर बैश में किया जाता है। यह आलेख इस बात का पता लगाएगा कि बैश का उपयोग करके किसी फ़ाइल के आधार नाम को उसके पथ और एक्सटेंशन के बिना कैसे निकाला जाए।

बैश में पथ और विस्तार के बिना फ़ाइल बेसनाम निकालें

किसी फ़ाइल के पथ और विस्तार के बिना उसका बेसनेम निकालने के लिए, हम बैश के पैरामीटर प्रतिस्थापन सुविधा के साथ बेसनेम कमांड का उपयोग कर सकते हैं। बेसनाम कमांड पथनाम के अंतिम घटक को लौटाता है, जो हमारे मामले में इसके विस्तार के साथ फ़ाइल नाम होगा। हालाँकि, प्रत्यय विकल्प को निर्दिष्ट करके, हम फ़ाइल नाम से एक्सटेंशन को हटा सकते हैं, यहाँ एक उदाहरण बैश कोड है:

#!बिन/बैश
दस्तावेज पथ = / घर / aaliyan / बैश3.श
एस = $ ( बेसनाम $ फ़ाइलपथ )
गूंज ' ${s%.*} '

उपरोक्त बैश स्क्रिप्ट एक चर को परिभाषित करती है जिसे 'कहा जाता है' दस्तावेज पथ 'और इसे फ़ाइल का पथ निर्दिष्ट करें' /घर/आलियान/bash3.sh '। स्क्रिप्ट तब फ़ाइल पथ से फ़ाइल का आधार नाम निकालने के लिए बेसनेम कमांड का उपयोग करती है और परिणाम को 'एस' नामक एक चर के लिए असाइन करती है।







दूसरा पैरामीटर विस्तार '%। *' का उपयोग करके डॉट के बाद वर्णों की किसी भी संख्या के सबसे कम संभव मिलान को हटाकर फ़ाइल नाम से एक्सटेंशन को हटा देता है। परिणामी स्ट्रिंग, 'bash3', फिर इको कमांड का उपयोग करके कंसोल पर प्रिंट किया जाता है:





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





#!बिन/बैश
दस्तावेज पथ = / घर / aaliyan / बैश3.श
एस = ${filepath##*/}
गूंज ' ${s%.*} '

यह एक बैश स्क्रिप्ट है जो 'फ़ाइलपथ' नामक एक चर को परिभाषित करती है और इसे 'मान' प्रदान करती है। /घर/आलियान/bash3.sh '। स्क्रिप्ट तब फ़ाइल के बेसनेम को उसके पथ और विस्तार के बिना निकालने के लिए दो बार बैश के पैरामीटर विस्तार सुविधा का उपयोग करती है। विशेष रूप से, पहला पैरामीटर विस्तार '##/' का उपयोग करके फ़ॉरवर्ड स्लैश के बाद वर्णों की किसी भी संख्या के सबसे लंबे समय तक संभव मिलान को हटाकर फ़ाइल नाम से पथ को हटा देता है।

परिणामी स्ट्रिंग, ' बैश3.श ' फिर 'एस' नामक एक चर को सौंपा गया है। दूसरा पैरामीटर विस्तार '%' का उपयोग करके किसी भी संख्या के वर्णों के सबसे कम संभव मिलान को हटाकर फ़ाइल नाम से एक्सटेंशन को हटा देता है। परिणामी स्ट्रिंग, 'bash3', फिर इको कमांड का उपयोग करके कंसोल पर प्रिंट किया जाता है:



निष्कर्ष

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