Em um ambiente semelhante a sh :
cd $(dirname $(readlink -f path/to/link))
você pode colocá-lo em uma função:
function cdl
{
cd $(dirname $(readlink -f "$1"))
}
Em uma máquina UNIX, eu em meu diretório atual eu crio um link simbólico:
> ln -s public_html/code/index.html
O que cria um arquivo chamado localmente index.html . Como pode cd para o diretório public_html/code do arquivo de link de software?
Isso funcionaria.
cd_link ()
{
LINK="$1";
[ ! -L "$LINK" ] && return;
DIR=$(readlink "$LINK");
DIR=${DIR%/*};
cd $DIR
}
Isso precisa ser uma função, não um script. Coloque em seu .bashrc, .kshrc, etc.
uma linha:
cd $(dirname $([ -L $0 ] && readlink -f $0 || echo $0))
Tags symbolic-link unix