符号链接是相对路径保存的快捷方式:
~/foo➤ ln -s . ~/bar/foo
~/foo➤ ls -l ~/bar
total 8
lrwxr-xr-x 1 me me 1B 15 May 14:38 foo -> .
该文件是当前目录~/bar/foo
的符号链接,即其本身bar
如果我想在另一个目录中创建指向我当时所在目录的符号链接,该怎么办?在上面的例子中,我在~/foo
,我想创建~/bar/foo
一个指向 的符号链接~/foo
。当然,我当前的目录可能比 5 个字符长很多,可能不那么容易输入。
答案1
我会说类型
ln -s $PWD ~/bar/
或者
ln -s `pwd` ~/bar/
您也可以使用
ln -s $PWD ~/bar/
但我想您知道这一点,而这并不是您所追求的。所以,您能否更新您的问题以解释您的目标是什么?
如果路径包含空格,那么建议使用:
ln -s "$PWD" ~/bar/
答案2
绝对地:
ln -s "$(readlink -f .)" ~/bar
(可能对脚本的通用性有好处)或者只是
ln -s ~/foo ~/bar
相对地:
ln -s ../foo ~/bar
制表符补全将帮助您打字。
来自 gravity 的评论和http://lists.gnu.org/archive/html/coreutils-announce/2012-03/msg00000.html:
* 版本 8.16 (2012-03-26) [稳定] 中值得注意的变化
...
ln
现在接受该--relative
选项,生成到目标的相对符号链接,而不管目标如何指定。
因此对于这个版本:
ln -s --relative . ~/bar
应该可以工作(实际上与您的第一个例子相同,只是增加了开关--relative
)。