कभी-कभी, कुछ ट्यूटोरियल का उद्देश्य अधिक विदेशी और अजीब कमांडों को समझाना होता है, इसके बजाय, कुछ ऐसे होते हैं जिनमें क्रमिक वितरण शामिल होते हैं और सीडी, एलएस, कैट आदि के रूप में लोकप्रिय नहीं होते हैं, लेकिन समान रूप से उपयोगी होते हैं। इस ट्यूटोरियल में मैं आपको दिखाऊंगा कि इनमें से दो कमांड के साथ क्या किया जा सकता है: आधार नाम और dirname.
संभवतः प्राथमिक रूप से वे बेतुके लगते हैं और उनका कोई उपयोग नहीं है, लेकिन उनका उपयोग होता है काफी व्यावहारिक अनुप्रयोग कुछ मामलों में, उदाहरण के लिए, स्क्रिप्ट में जहां पथ के कुछ हिस्से को निकालना आवश्यक होता है, जैसे फ़ाइल या निर्देशिका का नाम ताकि कोई अन्य कमांड उस पर काम कर सके...
यह किस लिए हैं
ये आदेश बहुत ही बुनियादी हैं, और इसके कार्य ध्वनि:
- बेसनाम: इसका उपयोग पथ से फ़ाइल का नाम निकालने के लिए किया जाता है।
- दिरनाम: का उपयोग पथ से निर्देशिका का नाम निकालने के लिए किया जाता है।
उपयोग के उदाहरण
यहां आप कुछ देख सकते हैं उदाहरण उनका उपयोग कैसे करें:
- उदाहरण के लिए, उपयोग करने के लिए बेसनाम /etc/passwd के साथ, और यह अपने आउटपुट में फ़ाइल का नाम लौटाता है, इस मामले में passwd:
basename /etc/passwd
- आप भी निर्दिष्ट कर सकते हैं विस्तार ताकि यह आपको बिना एक्सटेंशन के फ़ाइल का नाम दे सके। उदाहरण के लिए, कल्पना करें कि आप jpg एक्सटेंशन के बिना /home/media/test.jpg से एक छवि का नाम निकालना चाहते हैं (यह वापस आ जाएगा) prueba):
basename -s .jpg /home/media/prueba.jpg
- आप भी कर सकते हैं एक साथ कई मार्गों पर प्रक्रिया करें अलग से, इसके लिए आपको -a विकल्प का उपयोग करना होगा:
basename -a /etc/passwd /var/log/boot.log
- इसके विपरीत करने के लिए, और आपको फ़ाइल नाम के बिना निर्देशिका नाम दें, तो आपको इसका उपयोग करना होगा दिरनाम. उदाहरण के लिए, यदि आप पथ /var/spool/mail/test.txt का उपयोग करना चाहते हैं और इसे /var/spool/mail पर वापस लाना चाहते हैं, तो इसका उपयोग करें:
dirname /var/spool/mail/prueba.txt
जहाँ तक ए एक स्क्रिप्ट में उपयोगितायहाँ एक और उदाहरण है. कल्पना कीजिए कि आपके पास एक सरल स्क्रिप्ट है, और उसमें एक पथ है जो परिवर्तनशील है। लेकिन आप चाहते हैं कि यह उस निर्देशिका को दिखाए जिसमें एक फ़ाइल है, फ़ाइल की परवाह किए बिना, इस स्थिति में आपके पास कुछ ऐसा हो सकता है:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
जाहिर है, इस स्क्रिप्ट में "पथनाम" हमेशा शुरुआत में स्थिरांक द्वारा घोषित समान स्थिर होगा, लेकिन ऐसे मामले भी हो सकते हैं जिनमें यह नहीं है, और यही वह जगह है जहां यह व्यावहारिक हो जाता है। उदाहरण के लिए:
/*script para convertir una imagen gif en png*/ #!/bin/sh for file in *.gif;do #Salir si no hay ficheros if [! -f $file];then exit fi b='basename $file .gif' echo NOW $b.gif is $b.png giftopnm $b.gif | pnmtopng >$b.png done
उन चीजों का एक अच्छा उदाहरण है कि जब आप सीख रहे हैं तो आप बेकार देखते हैं, लेकिन जब आप इस विषय पर पहुंचते हैं तो आप देखते हैं कि वे कितने व्यावहारिक हैं।