o comando geralmente funciona perfeitamente, mas este ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/
apenas cria algum tipo de link quebrado mostrado como um arquivo.
Por que é que?
Mesmo sudo ln -fs
não funciona.
Alguma sugestão de como fazer isso?
Desde já, obrigado.
Responder1
Por mais estranho que possa parecer,
ln -si ../../../GIT/Settings/session ./.mozilla/firefox/foo.default/
fará o que você quiser. A regra aqui é que você deve especificar os destinos do link em relação ao local onde está colocando o link.
Em sistemas de arquivos Unix e semelhantes, um link simbólico é na verdade um arquivo especial cujo conteúdo é um caminho. A digitação cria um link simbólico emln path filename
nome do arquivocujo conteúdo écaminho. Então, se, por exemplo, você digitar
ln foo bar/baz
então seu sistema criará um link chamado bar/baz contendo o caminho "foo". Esse link, no entanto, será quebrado – quando você tentar desreferenciar o link, seu kernel o desreferenciará em relação ao link.diretório de links– neste caso, bar. Seu kernel irá procurar por bar/foo, que não existe.
Se, por outro lado, você digitar
ln ../foo bar/baz
então seu sistema criará um link chamado bar/baz contendo o caminho "../foo". Desreferenciando este link, seu kernel irá procurar por bar/../foo, que existe (e é de fato o que você deseja).
Responder2
Você pode usar o caminho completo do arquivo de origem e de destino
ln -s (full path to /foo) (full path to bar/baz)