Показать цель текущего каталога (символическая ссылка)

Я в каталоге ~/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"

(Выше приведен пример, и вы можете, конечно, подставлять значения по мере необходимости).

Другие вопросы по тегам