Tengo la siguiente estructura de directorios 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 mediante un CD.
¿Qué estoy buscando?
Cómo crear un enlace simbólico dentro de una carpeta con enlace simbólico de modo que la ruta relativa no esté rota. Por ejemplo,
cd ~/a/src/bin-xyz
o
cd ~/b/sync/src/bin-xyz
debería funcionar siempre que haya un directorio 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 sincronización bittorent para sincronizar.
Gracias :-)
Respuesta1
ahora bin-xyz es un enlace roto
Es de esperar que la razón sea obvia: cualquiera de los dos ..
tiene que referirse a laactualdirectorio principal o de lo contrario sería completamente ambiguo.
Desde entonces ~/a/src -> /home/user/b/sync/src
, supongo que con eso $PWD
estás ln -s ../bin bin-xyz
intentando /home/user/b/sync/src/bin-xyz
vincularte /home/user/a/sync/bin
. En cuyo caso deberías usar rutas absolutas:
ln -s /home/user/a/sync/bin /home/user/b/sync/src/bin-xyz
La razón por la ln
que no llena los espacios en ..
blanco a este respecto es que, a diferencia de su shell actual, no ha estado rastreando su movimiento y no tiene forma de saber que se ..
refiere a algo que no sea el directorio principal real.
En su pregunta (¿tal vez?) está implícito que no puede hacer esto porque en realidad hay dos sistemas diferentes involucrados. Eso implica que se monta un recurso compartido de red o que se utiliza el mismo dispositivo de bloque con ambos, lo que a su vez implica unaproblema xy- No puedo resolver eso sin más detalles.