Mover para o diretório de um link simbólico

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?

    
por Hooked 11.01.2011 / 23:52

3 respostas

4

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"))
}
    
por 12.01.2011 / 00:21
1

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.

    
por 12.01.2011 / 00:11
0

uma linha:

cd $(dirname $([ -L $0 ] && readlink -f $0 || echo $0))
    
por 29.08.2014 / 04:42