basename at dirname: dalawang utos na dapat mong malaman

utos ng terminal shell Linux

Minsan ang ilang mga tutorial ay naglalayong ipaliwanag medyo mas kakaiba at kakaibang mga utos, sa kabilang banda, mayroong ilang mga nagsasama ng mga serial na pamamahagi at hindi kasikat ng cd, ls, cat, atbp, ngunit ang mga ito ay praktikal din. Sa tutorial na ito ipapakita ko sa iyo kung ano ang maaaring gawin sa dalawa sa mga utos na iyon: basename at sabihin mo sa akin.

Marahil isang priori na tila walang katotohanan sa iyo at wala silang silbi, ngunit mayroon sila medyo praktikal na mga application sa ilang mga kaso, tulad ng, halimbawa, sa mga script kung saan kailangan mong kumuha ng ilang bahagi ng isang landas, tulad ng pangalan ng file o direktoryo upang ang isa pang utos ay gumana dito ...

Para saan sila

Ang mga utos na ito ay napaka-basic, at mga pag-andar nito tunog:

  • basename: ginamit upang makuha ang pangalan ng file mula sa isang landas.
  • diname: ginamit upang makuha ang pangalan ng direktoryo mula sa isang landas.

Mga halimbawa ng paggamit

Dito maaari mong makita ang ilan mga halimbawa kung paano gamitin ang mga ito:

  • Halimbawa, upang magamit basename kasama ang / etc / passwd, at ibabalik nito ang pangalan ng file sa output nito, sa kasong ito passwd:
basename /etc/passwd

  • Maaari mo ring tukuyin kadugtong kaya't bibigyan ka nito ng pangalan ng file nang walang extension. Halimbawa, ipagpalagay na nais mong kunin ang pangalan ng isang imahe / home / media / test.jpg nang walang extension na jpg (babalik ito pagsubok):
basename -s .jpg /home/media/prueba.jpg

  • Maaari mo ring iproseso ang maramihang mga ruta nang sabay-sabay magkahiwalay, para dito kailangan mong gamitin ang isang pagpipilian:
basename -a /etc/passwd /var/log/boot.log

  • Upang gawin ang kabaligtaran, at bigyan ka ng pangalan ng direktoryo, nang walang pangalan ng file, pagkatapos ay kailangan mong gamitin diname. Halimbawa, kung nais mong gamitin ito sa path /var/spool/mail/test.txt at ibalik ito / var / spool / mail, pagkatapos ay gamitin ang:
dirname /var/spool/mail/prueba.txt

Para naman sa a utility sa isang script, narito mayroon kang isa pang halimbawa. Isipin na mayroon kang isang simpleng script, at na sa loob nito mayroong isang landas na variable. Ngunit nais mong ipakita ang direktoryo na naglalaman ng isang file, anuman ang file, sa kasong iyon maaari kang magkaroon ng isang bagay tulad ng:

pathname="/home/usuario/data/fichero"

result=$(dirname "$pathname")

echo $result

Malinaw, sa script na ito ang "pathname" ay palaging magiging parehong static na ipinahayag ng pare-pareho sa simula, ngunit maaaring may mga kaso kung saan wala ito, at doon ay nagiging praktikal ito. Halimbawa:

/*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


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Gregorio ros dijo

    Isang magandang halimbawa ng mga bagay na kapag natutunan mo nakikita mong walang silbi, ngunit kapag napunta ka sa paksa nakikita mo kung gaano sila praktikal.