В этом вопросе уже есть ответ здесь:
В терминале один из способов ссылки на домашний каталог - использовать ~ /
. Я не понимаю, как это работает, потому что вывод file ~ /
:
/home/admin/: directory
, и просто запуск ~ /
приводит к:
-bash: /home/admin/: Is a directory
, так что конвертируется ~ /
в / home / admin
?
~ /
, похоже, также работает в / bin / dash
, поэтому я также знаю, что это не специфично для bash.
Расширение тильды требуется POSIX (см., что сначала связанная страница), и появляется во всех современных оболочках стиля Границы. Это включает популярные оболочки bash
, ksh93
, и zsh
, но также и больше минималиста окружает как mksh
, dash
, и busybox ash
.
На практике различные совместимые с POSIX оболочки иногда отличаются по точным деталям расширения тильды, обоих в неуказанном случае это HOME
использовался бы, но сброшен или пуст, и разрешать ~
нотация, которая будет использоваться для других целей, чем расширение корневых каталогов пользователей. Например, расширение тильды в bash
также обеспечивает сокращение от доступа к значениям PWD
и OLDPWD
переменные, с ~-
и ~+
, соответственно.
Однако в типичных случаях, это работает о том же через оболочки стиля Границы. Это типичные случаи (но обратите внимание, что этот способ разделить их не официален, это - просто мой способ представить материал):
~
или ~/
отдельно расширяется до Вашего корневого каталога.~/
сопровождаемый большим количеством компонентов контура расширяется до пути, запускающегося в Вашем корневом каталоге.~username
или ~username/
отдельно расширяется до корневого каталога пользователя, имя пользователя которого username
.~username/
сопровождаемый большим количеством компонентов контура расширяется до пути, запускающегося в корневом каталоге пользователя, имя пользователя которого username
.~
'сокращение' от $HOME
~
'краткий' путь состоит в том, чтобы записать $HOME
другими словами, Ваш корневой каталог. Это работает в оболочках (например. bash
) и назван 'расширением тильды'.
Если Вы добавляете запаздывающую наклонную черту, Вы подразумеваете, что говорите о каталоге.
Примеры:
$ ls -d ~/
/home/sudodus/
$ ls -d ~
/home/sudodus
$ ls -d $HOME
/home/sudodus
$ sudo -i
[sudo] lösenord för sudodus:
# ls -d ~/
/root/
# ls -d ~
/root
# exit
logout
$ ls xournal.png
xournal.png
$ LANG=C ls xournal.png/
ls: cannot access 'xournal.png/': Not a directory