У меня путаница в значении команды ~/
если x является каталогом, то что означает ~/x
в bash.
Пожалуйста, ведите меня
У меня путаница в значении команды ~/
если x является каталогом, то что означает ~/x
в bash.
Пожалуйста, ведите меня
Unix-оболочки обычно, и bash делает, развернуть ~
до пути к домашнему каталогу текущего пользователя. Этот путь часто также доступен как переменная среды HOME
, поэтому ~
и $HOME
обычно эквивалентны.
Поэтому, когда вы указываете путь ~/x
, вы говорите «путь к моему домашнему каталогу, затем /x
». Вы также можете написать $HOME/x
и получить тот же результат.
Если ваш домашний каталог находится в /home /umar, то он расширяется до /home /umar /x, который является допустимым путем. Если x
существует в вашем домашнем каталоге, указанный файл или каталог также существует и может использоваться (при условии наличия достаточных разрешений, которые у вас обычно есть для всего в вашем домашнем каталоге).
~
- это путь относительно пользователя, который представляет корневой каталог домашнего каталога пользователей (или, более конкретно, путь, указанный в конфигурации среды пользователя, вошедшего в систему). если я использую стандартную систему Debian от имени пользователя Bob, то мой профиль /home будет существовать по умолчанию в /home/bob
. В этом сценарии ~
будет оцениваться как /home/Bob
. ~
- это удобный ярлык, а также средство для отвлечения корневого местоположения профиля пользователя, если оно где-то непредсказуемо в файловой системе.
Одним из преимуществ использования ~
является то, что вы можете писать сценарии, которые выполняются одинаково для любого пользователя, независимо от того, какое у него имя пользователя или его профиль хранится в расположении по умолчанию. Абстрагируя фактические пути файловой системы от профиля пользователя, сценарии могут переноситься между системами, которые по-разному обрабатывают профили, или позволяют пользователю перемещать профиль в нестандартное местоположение.