![无需输入完整路径,即可将符号链接到当前文件夹作为绝对路径](https://linux22.com/image/1314976/%E6%97%A0%E9%9C%80%E8%BE%93%E5%85%A5%E5%AE%8C%E6%95%B4%E8%B7%AF%E5%BE%84%EF%BC%8C%E5%8D%B3%E5%8F%AF%E5%B0%86%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E5%88%B0%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E5%A4%B9%E4%BD%9C%E4%B8%BA%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84.png)
符号链接是相对路径保存的快捷方式:
~/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
)。