创建到当前目录的绝对符号链接

Tim*_*Tim 17 shell symlink cwd

我现在在一个路径很长的目录下。为了将来更快地访问它,我想创建一个链接。

我试过

ln -s . ~/mylink

~/mylink实际上链接到~. 那么我可以扩展~到过时的路径名,然后将其提供给ln?

Mic*_*mer 24

符号链接实际上将您从字面上给出的路径存储为字符串¹。这意味着您的链接~/mylink包含“ .”(一个字符)。当您访问链接时,该路径是相对于链接所在的位置进行解释的,而不是您创建链接时所在的位置。

相反,您可以在链接中存储所需的实际路径:

ln -s "$(pwd)" ~/mylink
Run Code Online (Sandbox Code Playgroud)

使用命令替换将pwd(工作目录名称)的输出放入命令行。ln查看完整路径并将其存储到您的符号链接中,然后该符号链接将指向正确的位置。

¹或多或少。

  • 另请参阅 POSIX shell 中的 `"$PWD"` 和 `zsh` 中的 `~0`。 (3认同)

cuo*_*glm 9

你应该使用:

ln -s "$(cd . && pwd)" ~/mylink
Run Code Online (Sandbox Code Playgroud)

或者:

ln -s "$(pwd -P)" ~/mylink
Run Code Online (Sandbox Code Playgroud)

以获得当前工作目录的正确结果。它可以在您在此问题中工作时进行更改。