Показать цель текущего каталога (символическая ссылка)
Я в каталоге ~/a
которая является символической ссылкой на ~/b/c
, Моя подсказка выглядит так:
~/a$
Но я надеюсь cd
в ~/b/c
,
~/a$ cd .
~/a$
Не работает Какой правильный путь?
2 ответа
Решение
Вот способ перехода к цели данной символической ссылки:
cd -P .
Вот как это работает
user@host:~/tmp$ ls
@a b
user@host:~/tmp$ file a
a: symbolic link to `b/c'
user@host:~/tmp$ cd a
user@host:~/tmp/a$ cd .
user@host:~/tmp/a$ cd -P .a
user@host:~/tmp/b/c$
Вы можете псевдоним это
cdl='cd -P'
Из руководства по bash:
Опция -P говорит об использовании физической структуры каталогов вместо следующих символических ссылок
Если вы просто пытаетесь перейти в другой каталог, то решение состоит в том, чтобы ввести его вручную (в противном случае система не будет переходить по ссылке обратно на ее источник).
Пример:
cd ~/b/c
Вы можете назначить псевдоним для этого, используя:
alias cdtobc="cd ~/b/c"
(Выше приведен пример, и вы можете, конечно, подставлять значения по мере необходимости).