创建后符号链接断开
Posted
技术标签:
【中文标题】创建后符号链接断开【英文标题】:Symbolic Link broken after creation 【发布时间】:2019-03-03 12:36:12 【问题描述】: 链接在我创建后立即断开。 我正确地使用了ln
。 ln -s SOURCE TARGET
创建符号链接
$ sudo ln -s ./sites-available/examble.domain.com ./sites-enabled
编译 nginx - 由于符号链接损坏而失败
注意: 问题与 NGINX 无关,NGINX 编译只是为了帮助我意识到问题的存在。 下面描述的解决方案适用于任何其他相关的问题。
$ sudo nginx -t
nginx: [emerg] open() "/etc/nginx/sites-enabled/example.domain.com" failed (2: No such file or directory) in /etc/nginx/nginx.conf:62
nginx: configuration file /etc/nginx/nginx.conf test failed
确认符号链接已损坏
$ file ./sites-enabled/example.domain.com
./sites-enabled/example.domain.com: broken symbolic link to ./sites-available/example.domain.com
【问题讨论】:
这是你的副本...How to symlink a file in Linux? @jww 不,不是。这个答案会让我感到困惑,并且不会为我提供任何关于为什么我的不起作用的答案。我完全描述了为什么这不起作用,说您应该像在目标文件夹中一样包含源,而提议的“重复”问题的答案或问题不包含该源。请充分意识到,我写这个答案是为了帮助像我这样挣扎了几个小时的人。 重要提示“重复”的答案不包含相对路径。只有绝对的。 【参考方案1】:问题是SOURCE
放到目标目录时没有重新解释。
因此,如果您要链接的文件是 ~/file
,并且您想使用以下方法将其链接到 ~/folder
:
ln -s ./file ./folder/
那么符号链接会认为file
在~/folder/file
而不是~/file
因此,您必须进入目录~/folder
并从那里执行ln
命令。
所以,问题是......
ln
需要 SOURCE
相对于 TARGET
目录的目录。不是您当前目录的相对 SOURCE
目录。
最终解决方案
# Getting into the folder
cd ./sites-enabled
# Creating symbolic link
ln -s ../sites-available/example.domain.com ./
【讨论】:
当然你也可以使用ln -s ../sites-available/example.domain.com sites-enabled
,不用cd
。这个解决方案的巧妙之处在于,如果您首先 do cd
到目录,则可以使用任何选项卡可完成路径,因为它已经与正确的目录相关。
正确,它避免了混淆并有助于标签。事实上,我不确定这是否适用于TARGET
路径之外。感谢您的贡献和帮助!以上是关于创建后符号链接断开的主要内容,如果未能解决你的问题,请参考以下文章