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

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

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

~/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 cd nele.

O que estou procurando?

Como criar um link simbólico dentro de uma pasta com link simbólico 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 diretório bin em ~/a/ ou ~b/sync/

Por que estou procurando isso?

Estou sincronizando ~/b/sync/src entre máquinas, onde ~/a/ é meu espaço 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 :-)

Responder1

agora bin-xyz é um link quebrado

A razão para isso é, esperançosamente, óbvia: ou ..tem que se referir aorealdiretório pai ou então seria completamente ambíguo.

Desde então ~/a/src -> /home/user/b/sync/src, presumo que $PWDvocê ln -s ../bin bin-xyzesteja tentando vincular /home/user/b/sync/src/bin-xyza /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 pela lnqual não preenche os ..espaços em branco a esse respeito é que ele, ao contrário do seu shell atual, não está rastreando seu movimento e não tem como saber se ..você quis dizer algo diferente do diretório pai real.

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

informação relacionada