basename a dirname: dva príkazy, ktoré by ste mali poznať

príkazy terminálového systému Linux

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


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Gregory ros dijo

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