Dirname

Z Wikipedie, otevřené encyklopedie
Dirname
Typ softwarustandardní UNIXová utilita či příkaz
Některá data mohou pocházet z datové položky.

dirname je standardní unixový příkaz. Když dirname je dána cesta, odstraní všechny suffixy začínající posledním lomítkem ('/') a vrátí výsledek. dirname je popsáno v Single UNIX Specification a je primárně používán v shellových skriptech.

Použití[editovat | editovat zdroj]

The Single UNIX Specification pro dirname je:

dirname řetězec
řetězec
cesta

Příklady[editovat | editovat zdroj]

dirname bude načítat názvy cest ke složkám a bude ignorovat jakékoliv koncové lomítka

$ dirname /home/martin/docs/base.wiki
/home/martin/docs

$ dirname /home/martin/docs/
/home/martin

$ dirname base.wiki
.

$ dirname /
/

Výkon[editovat | editovat zdroj]

Protože dirname přijímá pouze jeden operand, jeho použití ve vnitřní smyčce shell skriptu mohou být zhoršovat pro výkon. Zvažte

 while read file; do
     dirname "$file"
 done < some-input

Výše uvedený část kódu by mohl způsobit samostatné vyvolání procesu pro každý řádek vstupu. Z tohoto důvodu se obvykle namísto toho používá shell substituce

 echo "${file%/*}";

nebo pokud  musí být také řešeny relativní cesty

 if [ -n "${file##*/*}" ]; then
     echo "."
 else
     echo "${file%/*}";
 fi

Všimněte si, že tento kód manipuluje s koncovými lomítky jinak, než dirname.

Související články[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku dirname na anglické Wikipedii.

Externí odkazy[editovat | editovat zdroj]