42

Что означает ~ в абсолютном пути к файлу?

Я вижу это в выводе таких вещей, как сценарии сборки, но путь не существует.

5 ответов5

35

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

Обратите внимание, что я говорю о системах на основе Unix здесь.

Смотрите http://en.wikipedia.org/wiki/Home_directory#Unix

21

На самом деле оба ответа Адриана Муата и studiohack верны.
В операционных системах с ограниченным соглашением об именах (более старая версия Windows/DOS и т.д.) Это означает длинное имя.

e.g. "c:\program files\" is equivalent to "c:\progra~1\"

В некоторых операционных системах (а именно Unix) это означает home-dir (и может рассматриваться как абсолютный, но не канонический путь).
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* где "usr" - домашний каталог.

12

Во многих файловых системах имя файла будет содержать тильду (~) в каждом компоненте имени, которое является слишком длинным, чтобы соответствовать правилам именования 8.3.

Источник: именование файлов, путей и пространств имен - короткие и длинные имена - MSDN

(Часть пути вниз по странице ...)

5

И если вы занимаетесь программированием на ASP.NET, это означает верхний уровень веб-сайта; вместо навигации с помощью ../../images/some_image.jpg (и неверный уровень вложенности!) Вы можете просто сказать ~/images/some_image.jpg

1

Вот несколько советов, которые помогут вам лучше разобраться в этом:

$ readlink -f ~

$ echo $HOME

Примечание: $ - это соглашение для указания приглашения командной строки пользователя, оно не является частью команд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .