Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

dirnameэто стандартная компьютерная программа в Unix и Unix-подобных операционных системах . Когда dirnameзадано имя пути , он удалит любой суффикс, начинающийся с последнего '/'символа косой черты ( ), и вернет результат. dirnameописан в Единой спецификации UNIX и в основном используется в сценариях оболочки .

История [ править ]

Встроенная dirnameв GNU coreutils версия была написана Дэвидом Маккензи и Джимом Мейерингом. [1]

Команда dirname также была перенесена в операционную систему IBM i . [2]

Использование [ править ]

Спецификация Single UNIX для dirnameNST:

строка dirname
нить
путь к файлу

Примеры [ править ]

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  " $ { файл % / * } " ;

или если необходимо также обрабатывать относительные пути

 если  [ -n " $ { файл ## * / * } "  ] ;  затем  эхо  "."  иначе  echo  " $ { file % / * } " ;  фи

Обратите внимание, что они обрабатывают завершающие косые черты иначе, чем dirname.

Заблуждения [ править ]

Мы можем подумать, что пути, заканчивающиеся косой чертой, являются каталогами. Но на самом деле косая черта в конце представляет все файлы в каталоге.

/ главная / мартин / документы /.

Правильный способ представления пути в виде каталога - использовать косую черту в конце и точку. [ согласно кому? ] [ необходима ссылка ]

См. Также [ править ]

Ссылки [ править ]

  1. ^ https://linux.die.net/man/1/dirname
  2. ^ IBM . «Qshell для программирования IBM System i версии 7.2» (PDF) . Проверено 5 сентября 2020 .

Внешние ссылки [ править ]

  • dirname: вернуть часть каталога из имени пути - Справочник по командам и утилитам, Спецификация Single UNIX , Выпуск 7 из Open Group
  • dirname(1) -  Руководство по командам пользователя Linux
  • dirname(1) -  Руководство по основным командам OpenBSD