Обычно это означает, что домашний каталог пользователя, например, ~mike/будет mikeдомашним каталогом пользователя, ~/будет вашим собственным домашним каталогом. Тем не менее, остается неясным , мне ли ~/и ~mike/следует считать абсолютным или относительным; похоже, это зависит от приведенного определения (если кто-то может придумать авторскую ссылку, пожалуйста, оставьте комментарий).
Обратите внимание, что я говорю о системах на основе Unix здесь.
Они являются абсолютными, потому что они являются синонимами для абсолютных путей: в UNIX абсолютный путь может быть выведен из содержимого /etc/loginфайла. Расширение традиционно выполняется оболочкой, но любой язык, у которого есть претензии на «написание сценариев», тоже сделает это.
Чарльз Стюарт
2
+1: я не знал об этом ~username/.
Вуфферс
2
Интересно, что Windows PowerShell также принимает ~в качестве синонима домашнюю директорию пользователя.
Джои
1
Джеффри Сновер сказал, что PowerShell изначально был основан на VIM / EMAC
Anonymous Type
1
@ Чарльз Стюарт, возможно, по крайней мере ~ / относителен, поскольку это зависит от контекста пользователя. Кроме того, некоторые ссылки определяют абсолютный путь как путь, заданный из корня файловой системы, что, очевидно, не является таковым. Если у вас есть ссылка на ваше заявление, пожалуйста, поделитесь!
Адриан Муат
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» - домашний каталог.
В контексте сценариев сборки это, вероятно, версия, ориентированная на Unix.
Чарльз Стюарт
2
Unix-пути обычно используют косые черты, а не обратную.
Торбен Гундтофте-Бруун
@torbengb, правда ... опс
Эран
1
Небольшое исправление к отличному ответу Ксенороза. Имена файлов, такие как «progra ~ 1», не предназначены для более старых ОС. Моя система Windows 7 все еще использует их. (Для просмотра сделайте dir / x.) Это устаревшая функция, которая поддерживает старое программное обеспечение, которое не знает о длинных именах файлов в современных системах. Старое программное обеспечение считает, что все имена файлов соответствуют соглашению 8.3 . Когда имя файла не работает с этим соглашением, файловая система автоматически создает второе, 8.3-совместимое имя.
Исаак Рабинович
12
Во многих файловых системах имя файла будет содержать тильду (~) в каждом компоненте имени, которое является слишком длинным, чтобы соответствовать правилам именования 8.3.
Хм, не совсем подходит для имен, которые содержат точки. (например, 192.168.1.1или somefile.namewithdot)
Pacerier
5
И если вы занимаетесь программированием на ASP.NET, это означает верхний уровень веб-сайта; вместо того, чтобы перемещаться с помощью ../../images/some_image.jpg (и неправильно указывать уровень вложенности!), вы можете просто сказать ~ / images / some_image.jpg
Если короткое имя файла / каталога содержит «~» (например, «c: \ ololoo ~ 1»), возможно, что соответствующее длинное имя этого файла / каталога превысит максимальную длину (MAX_PATH = 260). Разработчики должны решить эту проблему с префиксом «\\? \» (Даже в более новой Windows 10, поскольку пользователь может отключить поддержку LongPathsEnabledдлинных путей « > 260» с параметром реестра или с групповой политикой «Включить длинные пути NTFS»). Пример этого обходного пути с использованием C # можно найти в источниках библиотеки ZetaLongPaths .
Ответы:
Обычно это означает, что домашний каталог пользователя, например,
~mike/
будетmike
домашним каталогом пользователя,~/
будет вашим собственным домашним каталогом. Тем не менее, остается неясным , мне ли~/
и~mike/
следует считать абсолютным или относительным; похоже, это зависит от приведенного определения (если кто-то может придумать авторскую ссылку, пожалуйста, оставьте комментарий).Обратите внимание, что я говорю о системах на основе Unix здесь.
Смотрите http://en.wikipedia.org/wiki/Home_directory#Unix
источник
/etc/login
файла. Расширение традиционно выполняется оболочкой, но любой язык, у которого есть претензии на «написание сценариев», тоже сделает это.~username/
.~
в качестве синонима домашнюю директорию пользователя.На самом деле оба ответа Адриана Муата и studiohack верны.
В операционных системах с ограниченным соглашением об именах (более старая версия Windows / DOS и т. Д.) Это означает длинное имя.
В некоторых операционных системах (а именно Unix) это означает home-dir (и может рассматриваться как абсолютный, но не канонический путь).
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* где «usr» - домашний каталог.
источник
Источник: именование файлов, путей и пространств имен - короткие и длинные имена - MSDN
(Часть пути вниз по странице ...)
источник
192.168.1.1
илиsomefile.namewithdot
)И если вы занимаетесь программированием на ASP.NET, это означает верхний уровень веб-сайта; вместо того, чтобы перемещаться с помощью ../../images/some_image.jpg (и неправильно указывать уровень вложенности!), вы можете просто сказать ~ / images / some_image.jpg
источник
/images/some_image.jpg
должен привести вас к корню любого веб-сайта. Какие дополнительные функции предоставляет тильда в ASP.NET?Вот несколько советов, которые помогут вам лучше разобраться в этом:
Примечание:
$
это соглашение для указания приглашения командной строки пользователя, оно не является частью команд.источник
Подробнее о Windows:
Если имя скрытого файла начинается с '~', то проводник Windows обрабатывает его как системный скрытый файл. Подробнее в разделе Почему скрытые файлы с лидирующей тильдой считаются сверхскрытыми?
Если короткое имя файла / каталога содержит «~» (например, «c: \ ololoo ~ 1»), возможно, что соответствующее длинное имя этого файла / каталога превысит максимальную длину (MAX_PATH = 260). Разработчики должны решить эту проблему с префиксом «\\? \» (Даже в более новой Windows 10, поскольку пользователь может отключить поддержку
LongPathsEnabled
длинных путей « > 260» с параметром реестра или с групповой политикой «Включить длинные пути NTFS»). Пример этого обходного пути с использованием C # можно найти в источниках библиотеки ZetaLongPaths .источник