Пути — basename, dirname, realpath
шпаргалка · GNU coreutils https://lab.dimsanych.ru/ru/wiki/paths/Шпаргалка
-
basename /a/b/c.txtc.txt -
basename /a/b/c.txt .txtc -
dirname /a/b/c.txt/a/b -
realpath ../xабсолютный путь -
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"каталог скрипта
Ключи
У каждой из трёх утилит свой небольшой набор ключей. basename -s убирает
суффикс без отдельного вызова sed, -a берёт сразу несколько путей.
realpath -e требует, чтобы весь путь реально существовал, а -m наоборот —
считает путь строкой, даже если файла ещё нет; путать их — частая причина
ошибок в скриптах, которые готовят путь для файла, который сами же создадут.