Intenté usar relativo a pwd, pero no funciona.
Mi contraseña actual es diferente de la ruta de destino y la ruta original (desde donde se debe crear el enlace).
No conozco el directorio de inicio, por lo que no puedo utilizar la ruta de acceso relativa al inicio. No se requiere una ruta de acceso absoluta.
¿Cómo puedo crear un enlace suave usando una ruta relativa?
Respuesta1
Un enlace simbólico relativo es relativo a su directorio principal, eso es irrelevante para el directorio actual de cualquier proceso o el directorio de inicio de cualquier usuario.
Por ejemplo, si /some/dir/link
es un enlace simbólico a ../foo/bar
, entonces es un enlace simbólico a /some/dir/../foo/bar
( /some/foo/bar
si /some/dir
no es en sí mismo un enlace simbólico), independientemente de cuál sea su directorio actual o de inicio.
Si desea crear un nuevo enlace simbólico a un archivo relativo al directorio actual (por ejemplo, el bin/ls
archivo en su /home/stephane
directorio actual), puede hacerlo (en shells tipo POSIX o fish
):
ln -s -- "$PWD/bin/ls" /some/dir/link
Lo que crearía un enlace simbólico absoluto (a /home/stephane/bin/ls
). Para crear un enlace simbólico relativo, necesitaría:
ln -s ../../home/stephane/bin/ls /some/dir/link
(asumiendo que /some
y /some/dir
no son en sí mismos enlaces simbólicos)
GNU ln
tiene una -r
opción para ayudarte a calcular esa ruta:
ln -rs bin/ls /some/dir/link
(lo que crearía el mismo enlace simbólico a ../../home/stephane/bin/ls
).
Respuesta2
Puedes hacer un enlace simbólico usando una ruta relativa.
por ejemplo (desea crear un enlace simbólico desde la carpeta bb
que se encuentra ../../bb
relacionada con el directorio de trabajo actual paramylink
ln -s ../../bb/ mylink
$ ls -lsa mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 15:51 mylink -> ../../bb/
Otro ejemplo donde mylink está en una carpeta 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/