No Linux, você pode usar o seguinte:
export PS1='$( readlink -f . )'
Exemplo:
$ export PS1='$( readlink -f . ) \$ '
/home/danielbeck $ ln -s /etc foo
/home/danielbeck $ cd foo
/etc $ _
Observe que você ainda estará em /home/danielbeck/foo
para todo o resto, como resolver os diretórios pais com cd ..
, portanto, continue o exemplo:
/etc $ cd ..
/home/danielbeck $ _
Outra opção pode ser substituir cd
por uma função que entra no diretório canônico em vez do link simbólico, algo como:
function cd {
if [[ $# -ne 1 ]] ; then
builtin cd "$@"
elif [[ "$1" = "-" ]] ; then
builtin cd -
else
builtin cd "$( readlink -f "$1" )"
fi
}
Isso também pode funcionar para qualquer cd
argumentos e suporta até CDPATH
:
function cd {
builtin cd "$@"
builtin cd "$( readlink -f . )"
}