我尝试使用相对于 pwd,但它不起作用。
我当前的密码与目标路径和原始路径(需要创建链接的位置)不同。
我不知道主目录,因此无法使用相对于主目录的路径名。不需要绝对路径名。
如何使用相对路径名创建软链接?
答案1
相对符号链接是相对于其父目录的,与任何进程的当前目录或任何用户的主目录无关。
例如, if/some/dir/link
是到 的符号链接../foo/bar
,那么它就是到 的符号链接/some/dir/../foo/bar
(/some/foo/bar
if/some/dir
本身不是符号链接),无论您的当前目录或主目录是什么。
如果您想创建一个新的符号链接到相对于当前目录的文件(例如bin/ls
当前/home/stephane
目录中的文件),那么您可以执行以下操作(在类似 POSIX 的 shell 或 中fish
):
ln -s -- "$PWD/bin/ls" /some/dir/link
这将创建一个绝对符号链接(到/home/stephane/bin/ls
)。要创建相对符号链接,您需要:
ln -s ../../home/stephane/bin/ls /some/dir/link
(假设/some
和/some/dir
本身不是符号链接)
GNUln
有一个-r
选项可以帮助您计算该路径:
ln -rs bin/ls /some/dir/link
(这将创建相同的符号链接../../home/stephane/bin/ls
)。
答案2
您可以使用相对路径进行符号链接
例如(您想要从bb
位于../../bb
与当前工作目录相关的文件夹到mylink
ln -s ../../bb/ mylink
$ ls -lsa mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 15:51 mylink -> ../../bb/
mylink 位于相关文件夹中的另一个示例pwd
mkdir ../../tst
$ ln -s ../../bb/ ../../tst/mylink
$ ls -lsa ../../tst/mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 16:08 ../../tst/mylink -> ../../bb/