nume de bază și nume de direcție: două comenzi pe care ar trebui să le cunoașteți

comenzi Linux shell terminal

Uneori, unele tutoriale au ca scop explicarea unor comenzi ceva mai exotice și mai ciudate, pe de altă parte, există unele care includ distribuții seriale și nu sunt la fel de populare ca cd, ls, cat etc., dar sunt la fel de practice. În acest tutorial vă voi arăta ce se poate face cu două dintre aceste comenzi: nume de bază și spune-mi.

Poate că a priori ți se par absurde și că nu au rost, dar au aplicații destul de practice în unele cazuri, cum ar fi, de exemplu, în scripturi în care este necesar să extrageți o parte a unei căi, cum ar fi numele fișierului sau directorul, astfel încât o altă comandă să funcționeze pe acest ...

Pentru ce sunt

Aceste comenzi sunt foarte simple și funcțiile sale sunet:

  • nume de bază: folosit pentru a extrage numele fișierului dintr-o cale.
  • spune-mi: folosit pentru a extrage numele directorului dintr-o cale.

Exemple de utilizare

Aici puteți vedea câteva exemple cum să le utilizați:

  • De exemplu, pentru a utiliza nume de bază cu / etc / passwd și că returnează numele fișierului în ieșire, în acest caz passwd:
basename /etc/passwd

  • De asemenea, puteți specifica o extensie astfel încât să vă dea numele fișierului fără extensie. De exemplu, să presupunem că doriți să extrageți numele unei imagini /home/media/test.jpg fără extensia jpg (ar reveni Prueba):
basename -s .jpg /home/media/prueba.jpg

  • Puteți chiar procesați mai multe rute simultan separat, pentru aceasta trebuie să utilizați opțiunea -a:
basename -a /etc/passwd /var/log/boot.log

  • Pentru a face opusul și pentru a vă oferi numele directorului, fără numele fișierului, atunci trebuie să utilizați spune-mi. De exemplu, dacă doriți să-l utilizați în calea /var/spool/mail/test.txt și să îl returnați / var / spool / mail, atunci utilizați:
dirname /var/spool/mail/prueba.txt

Cât despre un utilitar într-un script, aici aveți un alt exemplu. Imaginați-vă că aveți un script simplu și că în el există o cale variabilă. Dar doriți să afișeze directorul care conține un fișier, indiferent de fișier, în acest caz ați putea avea ceva de genul:

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

result=$(dirname "$pathname")

echo $result

Evident, în acest script „calea” ar fi întotdeauna aceeași statică declarată de constantă la început, dar pot exista cazuri în care nu este, și acolo este devine practic. De exemplu:

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


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Grigorie ros el a spus

    Un bun exemplu al acelor lucruri pe care atunci când înveți le vezi inutile, dar când ajungi la subiect vezi cât de practice sunt.