符号链接,为什么不一样

2015-08-15 11:14:13 +08:00
 aiqier

因为要使用supervisor管理自己的服务,所以需要创建一个配置,并添加一个符号链接。

要说明的是conf.avai是supervisor是放置配置的地方
而conf.d是放置配置对应的符号链接的地方
两个目录是同一级的。

|── conf.d
├──|── ...
├──|── ...
├── conf.avai
├──|── ...
├──|── ...

我使用了两种方式创建符号链接:

  1. sudo ln -s test_pay_system.conf ../conf.d/(在conf.avai目录下)

  2. sudo ln -s ../conf.avai/test_pay_system.conf ./(在conf.d目录下)

实际上,第二种才可以使我的配置生效,第一种并不能,那么我想问一下这两种创建符号链接的方式有什么区别。

而且我的shell是bash,两种方式生成的符号链接的颜色,并不相同.

2495 次点击
所在节点    Linux
6 条回复
dorentus
2015-08-15 11:26:27 +08:00
ln 创建符号链接的时候并不会把相对路径转成绝对路径。用相对路径的话,总是相对于链接自身所在的目录的

所以第一个不行,但改成这样也是可以的:

sudo ln -s ../test_pay_system.conf ../conf.d/(在conf.avai目录下)
Starduster
2015-08-15 13:52:00 +08:00
我一般都是一律使用使用绝对路径防止手滑填错或者是出什么其他问题,反正 zsh 有自动补全多敲几下 TAB
aiqier
2015-08-15 15:14:24 +08:00
@Starduster 应该不是输入的错误。
Starduster
2015-08-15 15:30:03 +08:00
@aiqier 我手滑输错过 nginx 配置的相对链接然后出了点奇怪的错误,所以现在稳妥起见都是绝对路径
v2survive
2015-08-15 16:57:27 +08:00
创建相对路径的符号链接的时候,最好还是在放符号链接的路径下创建,这样补全的路径和符号链接查找到的目标就是一致的。
然后有效的符号链接会显示为青色,无效的符号链接会显示为黑底红色,当然颜色其实和配置相关
ttimasdf
2015-08-15 17:37:44 +08:00
创建链接时候前面加一个$pwd又不会累死(╯з╰)
但我不知道$pwd不是标准环境变量。。ohmyzsh用了久惯坏了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/213369

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX