Пример dirname команда | |
Разработчик (и) | Различные разработчики с открытым исходным кодом и коммерческие разработчики |
---|---|
Операционная система | Unix, Unix-подобная, IBM i |
Тип | Команда |
Лицензия | coreutils : GPLv3+ |
dirname
- стандартный компьютер программа в Unix и Unix-подобных операционных системах. Когда dirname
дается путь, он удалит любой суффикс, начинающийся с последнего символа косой черты ('/'
), и вернет результат. dirname
описано в Single UNIX Specification и в основном используется в сценариях оболочки.
Версия dirname
, встроенная в GNU coreutils был написан Дэвидом Маккензи и Джимом Мейерингом.
Команда dirname также была перенесена в операционную систему IBM i.
Единая спецификация UNIX для dirname
:
dirname string
dirname будет извлекать имя пути к каталогу из имени пути, игнорируя любые завершающие косые черты
$ dirname /home/martin/docs/base.wiki / home / martin / docs $ dirname / home / martin / docs /. / home / martin / docs $ dirname / home / martin / docs / / home / martin $ dirname base.wiki. $ dirname / /
Поскольку dirname
принимает только один операнд, его использование во внутреннем цикле сценариев оболочки может отрицательно сказаться на производительности. Учитывайте
при чтении файла; do dirname "$ file" done < some-input
Приведенный выше отрывок вызовет отдельный вызов процесса для каждой строки ввода. По этой причине вместо него обычно используется замена оболочки
echo "$ {file% / *}";
или если также требуется обработка относительных путей
if [-n "$ {file ## * / *}"]; затем эхо "." иначе echo "$ {file% / *}"; fi
Обратите внимание, что они обрабатывают завершающие слеши иначе, чем dirname.
Можно подумать, что пути, заканчивающиеся косой чертой в конце, являются каталогами. Но на самом деле косая черта в конце представляет все файлы в каталоге.
/ home / martin / docs /.
Правильный способ представления пути в виде каталога - это использовать косую черту в конце и точку.
В Викибуке Руководство по Unix есть страница по теме: Команды |
имя каталога
: вернуть часть каталога в имени пути - Справочник по командам и утилитам, Единая спецификация UNIX, выпуск 7 из The Open Group dirname (1)
– Linux Команды пользователя Руководство dirname (1)
– OpenBSD Общие команды Руководство