В bash я могу перейти в свой домашний каталог с cd ~
помощью любой команды с помощью команды и перейти к своему домашнему каталогу ~
.
Могу ли я создать новые пользовательские «псевдонимы каталогов» (?) Для ссылки на другие каталоги? Гипотетический пример:
make_alias "~~" /mnt/photon/work/foo_project/
cp ~/home.png ~~/set_8/home_4.png
Как это можно сделать, если так? Если не может, то это задумано и почему так?
Приятно иметь: Где и как ~
устанавливается и привязывается к этому «~»?
n=/mnt/photon/work/foo_project
а потомcp foo ~n/bar
. (Примечание для OP: также ограничено zsh).@
или_
), что невозможно в bash, хотя,~~
безусловно, (хак, но возможно). Кроме того, это не отвечает, как это перераспределение сделано.Ответы:
Тильда - это не псевдоним, это часть расширения оболочки bash (как и
*.txt
or$((1 + 2))
).Расширение Bash Tilde поддерживает следующие префиксы тильды:
dirs
использует стек каталогов. Вы можете использовать,pushd
чтобы добавить каталог к нему.Чтобы ответить на ваш конкретный вопрос о том
~~
, да, можно сопоставить каталог с ним. Просто создайте пользователя с именем~
и установите в/mnt/photon/work/foo_project/
качестве его домашнего каталога:Конечно, гораздо более разумный подход - это просто определить переменную оболочки, которая указывает на ваш каталог в вашей
~/.bashrc
командек которому можно получить доступ
$foo
, как обычно.источник