Cómo crear un enlace simbólico relativo que funciona en PC

Tengo la siguiente estructura de directory para comenzar

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

Creé un enlace simbólico

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

ahora bin-xyz es un enlace roto, y no hay forma de acceder a él.

¿Qué estoy buscando?

Cómo crear un enlace simbólico dentro de una carpeta enlazada de manera que la ruta relativa no se rompa. Por ejemplo,

  cd ~/a/src/bin-xyz 

o

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

debería funcionar siempre que exista un directory bin en ~ / a / o ~ b / sync /

¿Por qué estoy buscando esto?

Estoy sincronizando ~ / b / sync / src entre máquinas, donde ~ / a / es mi espacio de trabajo en ambas máquinas, pero el nombre de usuario de las máquinas difiere. Entonces, tener una ruta relativa que funcione significa un flujo de trabajo más fácil para mí.

Estoy usando la synchronization de Bittorent para sincronizar.

Gracias 🙂

ahora bin-xyz es un enlace roto

La razón de esto es, con suerte, obvia: o bien .. tiene que referirse al directory padre real o de lo contrario sería completamente ambiguo.

Desde ~/a/src -> /home/user/b/sync/src , supongo que con $PWD y ln -s ../bin bin-xyz que está tratando de vincular /home/user/b/sync/src/bin-xyz a /home/user/a/sync/bin . En ese caso, debe usar routes absolutas:

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

La razón por la que no rellena los espacios en blanco es que, a diferencia de su caparazón actual, no ha estado rastreando su movimiento y no tiene forma de saber que .. se refería a algo que no sea el directory principal real.

Es (¿tal vez?) Implícita en su pregunta que no puede hacer esto porque en realidad hay dos sistemas diferentes involucrados. Eso implica que se monta un recurso compartido de networking o usa el mismo dispositivo de bloque con ambos, lo que implica a su vez un problema XY ; no puede resolver eso sin más detalles.