GNU/Linux >> Znalost Linux >  >> Linux

Použití příkazu Linux Dirname ve skriptech Bash

Příkaz dirname v Linuxu vytiskne cestu k souboru s odstraněnou konečnou součástí. To vám v podstatě poskytuje cestu k adresáři z cesty k souboru.

To je užitečné zejména ve skriptech bash, kde chcete extrahovat cestu k adresáři z dlouhé cesty k souboru.

Příkaz dirname doplňuje příkaz basename. Příkaz basename extrahuje název souboru z cesty, zatímco dirname extrahuje cestu k adresáři.

Dovolte mi, abych vám to ukázal na několika příkladech.

Příklady příkazů dirname

Příkaz dirname má přímou syntaxi.

dirname OPTION PATH

Použití příkazu dirname s absolutní cestou k souboru poskytne cestu k adresáři:

dirname /home/user/data/filename.txt
/home/user/data

Stejně jako příkaz basename je i příkaz dirname ve skutečnosti hloupý. Opravdu nerozpoznává cestu k souboru. Vyhledá pouze lomítka (/) a vytiskne to, co je před posledním lomítkem. V zásadě mu můžete dát jakýkoli řetězec s / a bude to fungovat.

Například zde používám náhodný řetězec bez názvu souboru. Můžete vidět, že to stále funguje stejně a na výstupu je řetězec, který odstraní poslední / a text za ním.

Pokud cesta neobsahuje lomítko (/), zobrazí se tečka (.) označující aktuální adresář.

Dirname můžete použít i s více cestami. Vrátí výstup pro každou cestu na novém řádku:

Můžete použít volbu -z k získání výsledku na stejném řádku s výstupy oddělenými znakem NULL.

Použití dirname ve skriptu bash

Ukázal jsem několik příkladů příkazu dirname. Pojďme si promluvit o používání dirname ve skriptech bash.

Předpokládejme, že máte proměnnou cesty k souboru a chcete získat cestu k adresáři, který obsahuje soubor. Může to být jednoduchý skript:

pathname="/home/dir/data/filename"

result=$(dirname "$pathname")

echo $result

Jak jsem již zmínil, příkaz dirname je doplněn příkazem basename. Na rozdíl od dirname příkaz basename vytiskne pouze poslední komponentu cesty.

Doufám, že se vám tento návod líbil. Jako vždy se neváhejte zeptat na otázky nebo poskytnout návrhy v sekci komentářů.

Líbil se vám článek? Sdílejte to prosím a pomozte nám růst :)


Linux
  1. Použití Bash pro automatizaci

  2. Použití Linux Sleep Command ve skriptech Bash

  3. Použití příkazu ripgrep (rg) v Linuxu

  1. Jak vymazat historii Bash na Linuxu

  2. Příkaz nenalezen v Bash Opraveno

  3. linuxový příkaz nalezen, ale nebyl nalezen při použití sudo

  1. Použití příkazu Linux Basename ve skriptech Bash

  2. Příklady použití příkazu dmsetup v Linuxu

  3. Přesuňte složku v Linuxu pomocí příkazu mv