basename மற்றும் dirname: நீங்கள் தெரிந்து கொள்ள வேண்டிய இரண்டு கட்டளைகள்

முனைய ஷெல் லினக்ஸ் கட்டளைகள்

சில நேரங்களில், சில பயிற்சிகள் சற்றே கவர்ச்சியான மற்றும் விசித்திரமான கட்டளைகளை விளக்கும் நோக்கில் உள்ளன, மறுபுறம், தொடர் விநியோகங்களை உள்ளடக்கிய சில உள்ளன மற்றும் அவை சிடி, எல்எஸ், பூனை போன்ற பிரபலமாக இல்லை, ஆனால் அவை நடைமுறைக்குரியவை. இந்த இரண்டு கட்டளைகளால் என்ன செய்ய முடியும் என்பதை இந்த டுடோரியலில் காண்பிப்பேன்: அடிப்படை பெயர் மற்றும் சொல்லுங்கள்.

ஒரு ப்ரியோரி அவர்கள் உங்களுக்கு அபத்தமாகத் தெரிகிறது, அவர்களுக்கு எந்தப் பயனும் இல்லை, ஆனால் அவை உள்ளன அழகான நடைமுறை பயன்பாடுகள் சில சந்தர்ப்பங்களில், எடுத்துக்காட்டாக, ஸ்கிரிப்ட்களில் நீங்கள் ஒரு பாதையின் சில பகுதியை பிரித்தெடுக்க வேண்டும், அதாவது கோப்பின் பெயர் அல்லது கோப்பகம் போன்றவை, இதனால் மற்றொரு கட்டளை செயல்படுகிறது ...

அவை எதற்காக

இந்த கட்டளைகள் மிகவும் அடிப்படை, மற்றும் அதன் செயல்பாடுகள் அவை:

  • அடிப்படை பெயர்: ஒரு பாதையிலிருந்து கோப்பின் பெயரைப் பிரித்தெடுக்கப் பயன்படுகிறது.
  • பெயர்: ஒரு பாதையிலிருந்து அடைவு பெயரைப் பிரித்தெடுக்கப் பயன்படுகிறது.

பயன்பாட்டு எடுத்துக்காட்டுகள்

இங்கே நீங்கள் சிலவற்றைக் காணலாம் எடுத்துக்காட்டுகள் அவற்றை எவ்வாறு பயன்படுத்துவது:

  • உதாரணமாக, பயன்படுத்த அடிப்படை பெயர் / etc / passwd உடன், மற்றும் கோப்பின் பெயரை அதன் வெளியீட்டில் தருகிறது, இந்த விஷயத்தில் passwd:
basename /etc/passwd

  • நீங்கள் குறிப்பிடலாம் ஒரு நீட்டிப்பு அது நீட்டிப்பு இல்லாமல் கோப்பின் பெயரை உங்களுக்கு வழங்குகிறது. எடுத்துக்காட்டாக, jpg நீட்டிப்பு இல்லாமல் ஒரு படத்தின் பெயரை /home/media/test.jpg பிரித்தெடுக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம் (அது திரும்பும் சோதனை):
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. தரவுகளுக்குப் பொறுப்பு: AB இன்டர்நெட் நெட்வொர்க்ஸ் 2008 SL
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.

  1.   கிரிகோரி ரோஸ் அவர் கூறினார்

    அந்த விஷயங்களுக்கு ஒரு சிறந்த எடுத்துக்காட்டு, நீங்கள் கற்றுக் கொள்ளும்போது பயனற்றதாகக் காணப்படுகிறீர்கள், ஆனால் நீங்கள் பாடத்திற்கு வரும்போது அவை எவ்வளவு நடைமுறைக்குரியவை என்பதைக் காணலாம்.