Существует ли общепринятое название для пути к домашнему каталогу ~/?
В поисках ответа я нашел посты, в которых используются различные термины:
- ~/ синтаксис
- ~/ пути
- ~/ расширенные пути
- ~/ обозначение
Но мне не удалось найти общепринятого и удобного термина для обозначения путей синтаксиса ~/, который можно было бы использовать для их отличия от полного абсолютного пути или относительного пути.
Обратите внимание: я знаю, что пути ~/ являются абсолютными, поскольку оболочка их расширяет — это удобный способ ссылаться на них, который мне и нужен.
решение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
, произносится"тильда-слеш пути". И ссылаться на явления"сокращение пути тильда-слеш". Честно говоря, я даже не думаю, что им нужно имя...