动态绝对路径符号链接

时间:2016-03-23 17:40:49

标签: linux symlink

有没有办法为符号链接创建动态绝对路径?

每当我尝试使用相对路径创建符号链接时,链接就会被解析为已损坏。我唯一的选择是创建一个带有绝对路径的符号链接

    ex. ln -s $PATH/folder docroot/folder1 

虽然这很有效,但当我将代码推送到远程服务器时,路径仍然在我的主目录中查找并导致权限被拒绝错误。 所以,我想知道是否有办法伪造绝对路径?

项目的文件结构如下:

SiteName
  Docroot
     folder
     folder
     folder

1 个答案:

答案 0 :(得分:2)

您最初使用相对链接的想法非常合适,但很可能只是没有正确实施。要正确创建相对符号链接:

  • 给定目录结构:

    SiteName
      docroot
         folder
    
  • 您当前的工作目录:SiteName

  • 您想:docroot/folder1 -> docroot/folder

尝试:

$ ln -s folder docroot/folder1

如果你有tree程序,则可以看到结构以及符号链接folder1成功指向docroot&#39; s folder:< / p>

$ tree
.
└── docroot
    ├── folder
    └── folder1 -> folder

3 directories, 0 files

说明

您对相关链接的原始尝试失败可能是由于对relative链接所需内容的常见误解:

Shadur's Unix & Linux answer提及:

  

符号链接相对于链接所在的位置,而不是您创建链接时的位置。 ...

所以,

  • folder1的角度来看,folder的相对路径只是folder,因为他们是同一目录的兄弟姐妹
  • 命令语法为ln -s <relative path> <where to create new link>
  • SiteName运行命令时,将在docroot/folder1
  • 创建新链接

因此,最终命令ln -s folder docroot/folder1可以在docroot/folder1正确创建,以指向同一目录中的folder

所以只要你不改变他们的相对位置,它就会起作用。