Dirname
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.
Typ softwaru | standardní UNIXová utilita či příkaz |
---|---|
Některá data mohou pocházet z datové položky. |
Použití
editovatThe Single UNIX Specification pro dirname je:
dirname řetězec
- řetězec
Příklady
editovatdirname 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
editovatProtož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
editovatReference
editovatV tomto článku byl použit překlad textu z článku dirname na anglické Wikipedii.