无需输入完整路径,即可将符号链接到当前文件夹作为绝对路径

无需输入完整路径,即可将符号链接到当前文件夹作为绝对路径

符号链接是相对路径保存的快捷方式:

~/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)。

相关内容