1

У меня путаница в значении команды ~/

если x является каталогом, то что означает ~/x в bash.

Пожалуйста, ведите меня

2 ответа2

1

Unix-оболочки обычно, и bash делает, развернуть ~ до пути к домашнему каталогу текущего пользователя. Этот путь часто также доступен как переменная среды HOME , поэтому ~ и $HOME обычно эквивалентны.

Поэтому, когда вы указываете путь ~/x , вы говорите «путь к моему домашнему каталогу, затем /x ». Вы также можете написать $HOME/x и получить тот же результат.

Если ваш домашний каталог находится в /home /umar, то он расширяется до /home /umar /x, который является допустимым путем. Если x существует в вашем домашнем каталоге, указанный файл или каталог также существует и может использоваться (при условии наличия достаточных разрешений, которые у вас обычно есть для всего в вашем домашнем каталоге).

1

~ - это путь относительно пользователя, который представляет корневой каталог домашнего каталога пользователей (или, более конкретно, путь, указанный в конфигурации среды пользователя, вошедшего в систему). если я использую стандартную систему Debian от имени пользователя Bob, то мой профиль /home будет существовать по умолчанию в /home/bob . В этом сценарии ~ будет оцениваться как /home/Bob . ~ - это удобный ярлык, а также средство для отвлечения корневого местоположения профиля пользователя, если оно где-то непредсказуемо в файловой системе.

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

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