emri i bazës dhe emri i parë: dy komanda që duhet të dini

komandat Linux të shell terminal

Ndonjëherë, disa mësime kanë për qëllim të shpjegojnë komandat disi më ekzotike dhe të çuditshme, nga ana tjetër, ka disa që përfshijnë shpërndarje serike dhe nuk janë aq të njohura sa cd, ls, cat, etj., Por ato janë po aq praktike. Në këtë manual do t'ju tregoj se çfarë mund të bëhet me dy nga ato komanda: bazename dhe me thuaj.

Ndoshta apriori ju duken absurde dhe se nuk kanë dobi, por e kanë zbatime mjaft praktike në disa raste, të tilla si, për shembull, në skriptet ku është e nevojshme të nxirrni ndonjë pjesë të një rruge, të tilla si emri i skedarit ose direktoria në mënyrë që një komandë tjetër të veprojë në këtë ...

Për çfarë shërbejnë

Këto komanda janë shumë themelore, dhe funksionet e tij shëndoshë:

  • mbiemri: përdoret për të nxjerrë emrin e skedarit nga një shteg.
  • emër: përdoret për të nxjerrë emrin e drejtorisë nga një shteg.

Shembuj të përdorimit

Këtu mund të shihni disa shembuj si t'i përdorim ato:

  • Për shembull, për të përdorur mbiemri me / etc / passwd, dhe se kthen emrin e skedarit në daljen e tij, në këtë rast passwd:
basename /etc/passwd

  • Ju gjithashtu mund të specifikoni një zgjatim kështu që ju jep emrin e skedarit pa shtrirje. Për shembull, supozoni se doni të nxirrni emrin e një imazhi /home/media/test.jpg pa shtrirjen jpg (do të kthehej provë):
basename -s .jpg /home/media/prueba.jpg

  • Mund edhe përpunoni rrugë të shumta në të njëjtën kohë veçmas, për këtë duhet të përdorni opsionin -a:
basename -a /etc/passwd /var/log/boot.log

  • Për të bërë të kundërtën, dhe për t'ju dhënë emrin e direktorisë, pa emrin e skedarit, atëherë duhet të përdorni emër. Për shembull, nëse doni ta përdorni në rrugën /var/spool/mail/test.txt dhe ta ktheni / var / spool / mail, atëherë përdorni:
dirname /var/spool/mail/prueba.txt

Sa për një dobia në një skenar, këtu keni një shembull tjetër. Imagjinoni që keni një skenar të thjeshtë dhe se në të ka një shteg që është i ndryshueshëm. Por ju doni që ajo të tregojë direktorinë që përmban një skedar, pavarësisht skedarit, në atë rast mund të keni diçka si:

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

result=$(dirname "$pathname")

echo $result

Natyrisht, në këtë skenar "pathname" do të ishte gjithmonë e njëjta statike e deklaruar nga konstanta në fillim, por mund të ketë raste në të cilat jo bëhet praktike. Për shembull:

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


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Gregory ros dijo

    Një shembull i mirë i atyre gjërave që kur jeni duke mësuar i shihni të padobishme, por kur arrini në temë shihni se sa praktike janë ato.