В Linux вы можете использовать следующее:
export PS1='$( readlink -f . )'
Пример:
$ export PS1='$( readlink -f . ) \$ ' /home/danielbeck $ ln -s /etc foo /home/danielbeck $ cd foo /etc $ _
Обратите внимание, что вы все равно будете заниматься /home/danielbeck/foo
всем остальным, например разрешением родительских каталогов с помощью cd ..
продолжения примера:
/etc $ cd .. /home/danielbeck $ _
Другим вариантом может быть замена cd
на функцию, которая входит в канонический каталог вместо символической ссылки, что-то вроде:
function cd { if [[ $# -ne 1 ]] ; then builtin cd "$@" elif [[ "$1" = "-" ]] ; then builtin cd - else builtin cd "$( readlink -f "$1" )" fi }
Это также может работать для любых cd
аргументов и поддерживает даже CDPATH
:
function cd { builtin cd "$@" builtin cd "$( readlink -f . )" }