Včasih so nekatere vadnice namenjene razlagi nekoliko bolj eksotičnih in čudnih ukazov, po drugi strani pa obstajajo nekateri, ki vključujejo serijske distribucije in niso tako priljubljeni kot cd, ls, cat itd., Vendar so prav tako praktični. V tej vadnici vam bom pokazal, kaj lahko naredimo z dvema od teh ukazov: osnovno ime in mi povej.
Morda se vam a priori zdijo absurdni in da nimajo nobene koristi, imajo pa zelo praktične aplikacije v nekaterih primerih, na primer v skriptih, kjer morate izvleči del poti, na primer ime datoteke ali imenika, tako da na tem deluje drug ukaz ...
Za kaj so
Ti ukazi so zelo osnovni in njegove funkcije Zvok:
- osnovno ime: uporablja se za pridobivanje imena datoteke s poti.
- ime: uporablja se za pridobivanje imena imenika s poti.
Primeri uporabe
Tukaj lahko vidite nekaj primeri kako jih uporabiti:
- Na primer, za uporabo osnovno ime z / etc / passwd in da vrne ime datoteke v izhodu, v tem primeru passwd:
basename /etc/passwd
- Lahko tudi določite podaljšek tako da vam da ime datoteke brez končnice. Recimo, da ste želeli izvleči ime slike /home/media/test.jpg brez končnice jpg (vrnilo bi se test):
basename -s .jpg /home/media/prueba.jpg
- Lahko celo obdelati več poti hkrati ločeno, za to morate uporabiti možnost -a:
basename -a /etc/passwd /var/log/boot.log
- Če želite storiti nasprotno in vam dati ime imenika brez imena datoteke, potem morate uporabiti ime. Če ga želite na primer uporabiti na poti /var/spool/mail/test.txt in ga vrniti / var / spool / mail, potem uporabite:
dirname /var/spool/mail/prueba.txt
Kar zadeva a pripomoček v skriptu, tu imate še en primer. Predstavljajte si, da imate preprost skript in da je v njem spremenljiva pot. Toda želite, da prikaže imenik, ki vsebuje datoteko, ne glede na datoteko, v tem primeru bi lahko imeli nekaj takega:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
Očitno bi bilo v tem skriptu "ime poti" vedno isti statični element, ki ga je konstanta navedla na začetku, vendar lahko obstajajo primeri, v katerih ni, in prav tam postane praktično. Na primer:
/*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
Dober primer tistih stvari, ki se vam med učenjem zdijo neuporabne, ko pa pridete do predmeta, vidite, kako praktične so.