El comando generalmente funciona de maravilla, pero este ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/
simplemente crea una especie de enlace roto que se muestra como un archivo.
¿Porqué es eso?
Incluso sudo ln -fs
no funciona.
¿Alguna sugerencia de cómo hacer eso?
Gracias de antemano.
Respuesta1
Por extraño que parezca,
ln -si ../../../GIT/Settings/session ./.mozilla/firefox/foo.default/
hará lo que quieras. La regla general aquí es que debe especificar los destinos de su enlace en relación con la ubicación donde lo coloca.
En Unix y sistemas de archivos similares a Unix, un enlace simbólico es en realidad un archivo especial cuyo contenido es una ruta. Al escribir se crea un vínculo simbólico enln path filename
Nombre del archivocuyos contenidos soncamino. Entonces, si, por ejemplo, escribes
ln foo bar/baz
entonces su sistema creará un enlace llamado bar/baz que contiene la ruta "foo". Ese enlace, sin embargo, se romperá: cuando intentas desreferenciar el enlace, tu núcleo lo desreferencia en relación con el enlace.directorio de enlaces– en este caso, barra. Su kernel buscará bar/foo, que no existe.
Si por el contrario escribes
ln ../foo bar/baz
entonces su sistema creará un enlace llamado bar/baz que contiene la ruta "../foo". Al eliminar la referencia a este enlace, su kernel buscará bar/../foo, que existe (y de hecho es lo que desea).
Respuesta2
Puede utilizar la ruta completa del archivo de origen y de destino.
ln -s (full path to /foo) (full path to bar/baz)