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