basename और dirname: दो कमांड जो आपको पता होनी चाहिए

टर्मिनल शेल लिनक्स कमांड्स

कभी-कभी, कुछ ट्यूटोरियल का उद्देश्य अधिक विदेशी और अजीब कमांडों को समझाना होता है, इसके बजाय, कुछ ऐसे होते हैं जिनमें क्रमिक वितरण शामिल होते हैं और सीडी, एलएस, कैट आदि के रूप में लोकप्रिय नहीं होते हैं, लेकिन समान रूप से उपयोगी होते हैं। इस ट्यूटोरियल में मैं आपको दिखाऊंगा कि इनमें से दो कमांड के साथ क्या किया जा सकता है: आधार नाम और 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


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   ग्रेगरी आरओ कहा

    उन चीजों का एक अच्छा उदाहरण है कि जब आप सीख रहे हैं तो आप बेकार देखते हैं, लेकिन जब आप इस विषय पर पहुंचते हैं तो आप देखते हैं कि वे कितने व्यावहारिक हैं।