假设我当前位于/a/b/c/d/e/
,并且我想与f.txt
该目录中的文件建立符号链接。如果我这样做ln -s f.txt /etc/
,该文件/etc/f.txt
将不会指向该文件,因为它只是指向f.txt
,而不是/a/b/c/d/e/f.txt
。我已经尝试过ln -s ./f.txt /etc/
,但这实际上创建了一个链接到./f.txt
.
那么,除了自己输入完整路径(例如 )之外/a/b/c/d/e/f.txt
,是否有任何快捷方式可以告诉ln
我要使用当前目录中文件的绝对路径?
答案1
一种可能的方法是使用如下命令:
ln -s "$(pwd)/f.txt" /etc/
该命令pwd
会将当前路径添加到文件名中。
答案2
ln
命令有这个选项--relative
,但是我不确定这是否是 GNUism,因为我没有--relative
在 POSIX 手册 ( man 1p ln
) 中找到任何相关内容。
来自man ln
(选项 1)或ln --help
:
-r, --相对
使用 -s,创建相对于链接位置的链接
因此,如果您有 Linux(带有 gnu 软件),您可以使用:
ln -s --relative f.txt /etc/
答案3
另一个解决方案:
ln -s ${PWD}/f.txt /etc/