动态绝对路径符号链接

dynamic absolute path symlinks

有没有办法为 symlinks 创建动态绝对路径?

每次我尝试创建一个带有相对路径的 symlink 时,link 都解析为已损坏。我唯一的选择是用绝对路径

创建 symlink
    ex. ln -s $PATH/folder docroot/folder1 

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

项目的文件结构如下所示:

SiteName
  Docroot
     folder
     folder
     folder

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

  • 给定的目录结构:

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

  • 你想要:docroot/folder1 -> docroot/folder

尝试:

$ ln -s folder docroot/folder1

如果你有 tree 程序,你可以看到结构,以及 symlink folder1 成功指向 docrootfolder:

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

3 directories, 0 files

说明

您最初对亲属 link 的尝试失败可能是由于对 relative link 所需内容的普遍误解:

Shadur's Unix & Linux answer 提及:

Symbolic links are relative to the location the link is in, not the location you were when you created the link. ...

所以,

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

所以最后的命令是 ln -s folder docroot/folder1docroot/folder1 正确创建以指向同一目录中的 folder

因此,只要您不更改它们的相对位置,它现在就可以正常工作。