Niekedy sú niektoré návody zamerané na vysvetlenie trochu exotickejších a zvláštnejších príkazov, na druhej strane sú niektoré, ktoré obsahujú sériové distribúcie a nie sú také populárne ako cd, ls, cat atď., Ale sú rovnako praktické. V tomto návode vám ukážem, čo sa dá urobiť pomocou dvoch z týchto príkazov: basename a povedz mi.
Možno sa vám a priori zdajú absurdné a že sú zbytočné, ale majú celkom praktické aplikácie v niektorých prípadoch, napríklad v skriptoch, kde je potrebné extrahovať časť cesty, napríklad názov súboru alebo adresár, aby na ňu pracoval iný príkaz ...
Na čo slúžia
Tieto príkazy sú veľmi základné a jeho funkcie Sú to:
- základné meno: používa sa na extrahovanie názvu súboru z cesty.
- meno priezviska: používa sa na extrahovanie názvu adresára z cesty.
Príklady použitia
Tu môžete vidieť niektoré príklady ako ich používať:
- Napríklad na použitie základné meno s / etc / passwd a že vráti názov súboru vo svojom výstupe, v tomto prípade passwd:
basename /etc/passwd
- Môžete tiež určiť rozšírenie takže vám dá názov súboru bez prípony. Predpokladajme napríklad, že chcete extrahovať názov obrázka /home/media/test.jpg bez prípony jpg (vráti sa Prueba):
basename -s .jpg /home/media/prueba.jpg
- Môžete dokonca spracovať viac trás naraz osobitne, na to musíte použiť voľbu -a:
basename -a /etc/passwd /var/log/boot.log
- Ak chcete urobiť opak a dať vám názov adresára bez názvu súboru, musíte použiť meno priezviska. Napríklad, ak ho chcete použiť v ceste /var/spool/mail/test.txt a mať ho return / var / spool / mail, použite:
dirname /var/spool/mail/prueba.txt
Čo sa týka a pomôcka v skripte, tu máte ďalší príklad. Predstavte si, že máte jednoduchý skript a že v ňom existuje cesta, ktorá je variabilná. Ale chcete, aby zobrazoval adresár, ktorý obsahuje súbor, bez ohľadu na súbor, v takom prípade môžete mať niečo ako:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
Je zrejmé, že v tomto skripte bude „cesta“ vždy rovnaká statická hodnota deklarovaná konštantou na začiatku, ale môžu sa vyskytnúť prípady, keď to tak nie je, a to je miesto, kde stáva sa to praktickým, Napríklad:
/*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
Dobrým príkladom tých vecí, ktoré keď sa učíte, sú zbytočné, ale keď sa dostanú k predmetu, uvidíte, aké sú praktické.