相对于用户主目录的 ~/SomeDir 的符号链接

相对于用户主目录的 ~/SomeDir 的符号链接

我有一些项目,我与其他人分享。它在git中存储和分发。

它应该包含指向 git 存档外部但位于用户主目录内部的目录的链接,其中有一些常见的库,如下所示:

Arduino -> /home/gilhad/GitHub/arduino-1.8.1
Arduino-Makefile -> /home/gilhad/GitHub/Arduino-Makefile
Bare-Arduino-Project -> /home/gilhad/GitHub/Bare-Arduino-Project

它对我(gilhad)有用,但对我的朋友不起作用。我想建立这样的链接:

Arduino -> ~/GitHub/arduino-1.8.1
Arduino-Makefile -> ~/GitHub/Arduino-Makefile
Bare-Arduino-Project -> ~/GitHub/Bare-Arduino-Project

这将有效解决我帐户上的前一个问题和朋友帐户上的后续问题

Arduino -> /home/friend/GitHub/arduino-1.8.1
Arduino-Makefile -> /home/friend/GitHub/Arduino-Makefile
Bare-Arduino-Project -> /home/friend/GitHub/Bare-Arduino-Project

(无论这个 git/actual 目录实际放置在哪里,因此../../../GitHub/....目标都不起作用,因为项目可以放置在~/tmp 以及 in 中~/my/special/folder/for/projects,而GitHub始终放置在用户主目录中(/home/gilhad/home/friend~指向的内容)

答案1

您实际上无法使用符号链接来做到这一点。除了用波浪号引用主目录是 shell 功能,并且并非所有程序都支持(尽管很多程序都支持)这一事实之外,“主目录”的整个概念是一个用户空间概念,并且不被所有程序支持。不存在于内核中。因此,解析符号链接的内核文件系统层不具备您需要的知识。

在 Linux 上,你可以如果你真的想要的话,可以用挂载命名空间和绑定挂载来配置一些东西。 (看这里,这里这里


无论如何,在 git 存储库中创建指向存储库本身之外的链接的想法对我来说似乎有点奇怪。只有那些符合链接设置的系统的人才能使用链接,并且想要/需要不同布局的单个用户有点不走运。您可能需要考虑使用环境变量来存储用户文件的位置。用$ARDUINO指向/home/foo/GitHub/arduino-1.8.1/home/foo/GitHub/arduino-someotherversion按用户要求的方式表示。

相关内容