Tentei usar relativo ao pwd, mas não funcionou.
Meu pwd atual é diferente do caminho de destino e do caminho original (de onde o link precisa ser criado).
Não conheço o diretório inicial, portanto não posso usar o nome do caminho relativo ao inicial. O nome do caminho absoluto não é obrigatório.
Como posso criar um link virtual usando o nome do caminho relativo?
Responder1
Um link simbólico relativo é relativo ao seu diretório pai, que é irrelevante do diretório atual de qualquer processo ou do diretório inicial de qualquer usuário.
Por exemplo, if /some/dir/link
é um link simbólico para ../foo/bar
, então esse é um link simbólico para /some/dir/../foo/bar
( /some/foo/bar
if /some/dir
não é um link simbólico), independentemente de qual seja o seu diretório atual ou inicial.
Se você deseja criar um novo link simbólico para um arquivo relativo ao diretório atual (por exemplo, o bin/ls
arquivo em seu /home/stephane
diretório atual), você pode fazer (em shells do tipo POSIX ou fish
):
ln -s -- "$PWD/bin/ls" /some/dir/link
O que criaria um link simbólico absoluto (to /home/stephane/bin/ls
). Para criar um link simbólico relativo, você precisaria de:
ln -s ../../home/stephane/bin/ls /some/dir/link
(assumindo /some
e /some/dir
não são links simbólicos)
GNU ln
tem uma -r
opção para ajudá-lo a calcular esse caminho:
ln -rs bin/ls /some/dir/link
(o que criaria o mesmo link simbólico para ../../home/stephane/bin/ls
).
Responder2
Você pode fazer um link simbólico usando o caminho relativo
por exemplo (você deseja criar um link simbólico da pasta bb
localizada em ../../bb
relação ao diretório de trabalho atual paramylink
ln -s ../../bb/ mylink
$ ls -lsa mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 15:51 mylink -> ../../bb/
Outro exemplo onde mylink está em uma pasta relacionada parapwd
mkdir ../../tst
$ ln -s ../../bb/ ../../tst/mylink
$ ls -lsa ../../tst/mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 16:08 ../../tst/mylink -> ../../bb/