Como criar um link simbólico relativo que funcione no PC

3

Eu tenho a seguinte estrutura de diretórios para começar com

~/a/bin
~/a/src -> /home/user/b/sync/src

Eu criei um link simbólico

cd ~/a/src
ln -s ../bin bin-xyz

agora bin-xyz é um link quebrado, e não há como fazer o cd-up nele.

O que eu estou procurando?

Como criar um symlink dentro de uma pasta ligada simbolicamente, de forma que o caminho relativo não seja quebrado. Por exemplo,

 cd ~/a/src/bin-xyz 

ou

 cd ~/b/sync/src/bin-xyz

deve funcionar desde que haja um diretório bin em ~ / a / ou ~ b / sync /

Por que estou procurando por isso?

Estou sincronizando ~ / b / sync / src entre máquinas, onde ~ / a / é minha área de trabalho em ambas as máquinas, mas o nome de usuário das máquinas é diferente. Então, ter um caminho relativo que funcione significa um fluxo de trabalho mais fácil para mim.

Estou usando a sincronização bittorent para sincronização.

Obrigado: -)

    
por AmeBel 19.06.2014 / 06:21

1 resposta

4

now bin-xyz is a broken link

A razão para isso é óbvia: o .. tem que se referir ao diretório pai atual , ou então seria completamente ambíguo.

Como ~/a/src -> /home/user/b/sync/src , presumo que, como $PWD e ln -s ../bin bin-xyz , você esteja tentando vincular /home/user/b/sync/src/bin-xyz a /home/user/a/sync/bin . Nesse caso, você deve usar apenas caminhos absolutos:

 ln -s /home/user/a/sync/bin /home/user/b/sync/src/bin-xyz

A razão ln não preenche os .. de espaços em branco a este respeito é que, ao contrário do seu shell atual, não tem acompanhado o seu movimento e não tem como saber que .. significava algo diferente do diretório pai real.

É (talvez?) implícito em sua pergunta que você não pode fazer isso porque na verdade existem dois sistemas diferentes envolvidos. Isso implica que um compartilhamento de rede é montado ou você usa o mesmo dispositivo de bloco com ambos, o que implica, por sua vez, um Problema XY - não pode resolver isso sem mais detalhes.

    
por 19.06.2014 / 06:38

Tags