Driver86
@Driver86
Немодератор toster.ru

Зачем readlink с параметром «-f, --canonicalize» допускает отсутствие последнего компонента пути?

readlink
-f, --canonicalize
canonicalize by following every symlink in every component of the given name recursively; all but the last component must exist

"канонизировать, следуя каждой символической ссылке в каждом компоненте данного имени рекурсивно; все компоненты, кроме последнего, должны существовать"

Не понял, почему кроме последнего? Он какой-то особенный?

P.S. Изначально я просто хотел в bash-скрипте определять директорию файла скрипта, так:
dir=$(dirname $(readlink -f "$0"))
Но описание параметра заставило задуматься
  • Вопрос задан
  • 21 просмотр
Решения вопроса 1
Driver86
@Driver86 Автор вопроса
Немодератор toster.ru
Понял. Речь о том, что функция, при раскрытии пути, останавливается либо на конце пути, либо на компоненте, который указывает вникуда, и этот компонент будет включён в результат. Какого-то резона не включать его - нет.

Просто описание в доке выглядит так, будто бы сначала строится весь путь, а потом проверяется, нет ли там несуществующих компонентов, кроме последнего. Хотя конечно кажется невозможным такая ситуация, но это же linux, тут, например, можно писать в файл, который был удалён.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы