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
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.