Тильда не является псевдонимом, она является частью расширения оболочки bash (так же, как *.txt
или $((1 + 2))
).
Расширение Bash Tilde поддерживает следующие префиксы тильды:
~ The value of $HOME
~/foo $HOME/foo
~fred/foo The subdirectory foo of the home directory of the user fred
~+/foo $PWD/foo
~-/foo ${OLDPWD-'~-'}/foo
~N The string that would be displayed by `dirs +N'
~+N The string that would be displayed by `dirs +N'
~-N The string that would be displayed by `dirs -N'
dirs
использует стек каталогов. Вы можете использовать pushd
чтобы добавить в него каталог.
Чтобы ответить на ваш конкретный вопрос о ~~
, да, можно сопоставить каталог с ним. Просто создайте пользователя с именем ~
и установите /mnt/photon/work/foo_project/
качестве его домашнего каталога:
sudo useradd '~'
sudo sed -i 's#:/home/~:[^:]*$#:/mnt/photon/work/foo_project:/bin/false#' /etc/passwd
Конечно, гораздо более разумный подход - это просто определить переменную оболочки, которая указывает на ваш каталог в вашем ~/.bashrc
с помощью команды
foo=/mnt/photon/work/foo_project
к которому можно получить доступ через $foo
, как обычно.