Существует ли общепринятое название для ссылок на пути ~/?

Существует ли общепринятое название для ссылок на пути ~/?

Существует ли общепринятое название для пути к домашнему каталогу ~/?

В поисках ответа я нашел посты, в которых используются различные термины:

  • ~/ синтаксис
  • ~/ пути
  • ~/ расширенные пути
  • ~/ обозначение

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

Обратите внимание: я знаю, что пути ~/ являются абсолютными, поскольку оболочка их расширяет — это удобный способ ссылаться на них, который мне и нужен.

решение1

~/это всего лишь один из нескольких магических "Расширения Тильды". Расширения тильды особенно связаны с оболочками UNIX. В отличие от $HOMEрасширений тильды не являются общепонятными и могут различаться в зависимости от оболочки. Единственной общей чертой является приверженность стандарту POSIX (по большей части), и, согласно Википедии, стандарт оболочки POSIX основан на "строгом подмножестве" оболочки Korn, производной от оболочки Bourne Shell. К потомкам оболочки Bourne Shell относятся, в частности, bash и zsh.Вот что говорит POSIX о расширениях Tilde:

«Тильдовый префикс» состоит из некавычкового символа в начале слова, за которым следуют все символы, предшествующие первому некавычковому символу в слове, или все символы в слове, если нет . В назначении (см. Назначение переменных XBD) можно использовать несколько тильдовых префиксов: в начале слова (то есть после назначения), после любого некавычкового , или и то, и другое. Тильдовый префикс в назначении завершается первым некавычковым или . Если ни один из символов в тильдовом префиксе не заключен в кавычки, символы в тильдовом префиксе, следующие за , рассматриваются как возможное имя входа из базы данных пользователей. Переносимое имя входа не может содержать символы за пределами набора, указанного в описании переменной среды LOGNAME в разделе Другие переменные среды XBD. Если имя входа равно null (то есть тильдовый префикс содержит только тильду), тильдовый префикс заменяется значением переменной HOME. Если HOME не задан, результаты не определены. В противном случае префикс тильды должен быть заменен на путь к исходному рабочему каталогу, связанному с именем входа, полученным с помощью функции getpwnam(), как определено в томе Системные интерфейсы POSIX.1-2008. Если система не распознает имя входа, результаты не определены.

Имя пути, полученное в результате расширения тильды, должно рассматриваться как заключенное в кавычки, чтобы предотвратить его изменение при разделении полей и расширении имени пути.

По сути это означает, ~что $HOME и ~foo/ссылки наначальный рабочий каталогпользователя foo. Грубо говоря, но не всегда означает домашний каталог foo. (единственное исключение, которое я могу вспомнить, это root)

В BaSH они не придерживаются этого стандарта для расширений тильды внесколько способов, ничего особенно значимого. У BaSH также есть другие забавные расширения тильды,связьлюбезно предоставлено комментатором @phk. Вы можете собрать их все!


Но я отвлекся. Если мы говорим о том, как называется ~/, я не уверен, имеете ли вы в виду термин для самого пути (формы ~/x/y/z) или для явлений использования ~/для создания указанного пути (т. е. произведение искусства против искусства, производное против дифференциации). Потому что ~/ pathsи , ~/ expanded pathsпохоже, относятся к первому, а ~/ syntaxи ~/ notationко второму. Я, возможно, усложняю, но язык — штука переменчивая. Например, ~/ pathsподчеркивает форму путей, начинающихся с ~/, в то время как ~/ extended pathsподчеркивает функцию ~/, выполняемую для создания пути этой формы.

В любом случае, к настоящему моменту вы, вероятно, уже поняли, что

нет общепринятого названия

поскольку все эти термины находятся в обращении, и эта проблема не получила официального внимания, о котором мы знаем от властей предержащих. Или, говоря иначе, все эти термины являются способами описания одного и того же, а не конкурирующими ярлыками. У них нет формального названия, но любой, кто немного знает bash, сразу поймет, что они означают, и если люди понимают, о чем вы говорите, кого волнует, как вы это называете? Вы можете решить для себя, какой термин вам нравится. Лично мне нравится ~/ paths, произносится"тильда-слеш пути". И ссылаться на явления"сокращение пути тильда-слеш". Честно говоря, я даже не думаю, что им нужно имя...

Связанный контент