不同目录下建立符号链接出错路径下建立失败:broken symbolic link to netease-cloud-music

今天在建立网易云音乐的软链接时,出现了如下问题:

如下图运行指令:


deadpool@deadpool-K53SD:/usr/bin$ ln -s netease-cloud-music ~/CloudMusic2.symbol

进入/home/deadpool:

查看软链接建立情况:deadpool@deadpool-K53SD:~$ file CloudMusic2.symbol
报错如下图:CloudMusic2.symbol: broken symbolic link to netease-cloud-music

一开始时候是以为软链接的权限问题,因为/usr/bin为root权限,在更改/usr权限为chmod 777 /usr后,建立软链接仍然出现同样错误。

于是怀疑可能是因为上述命令~的原因,在建立软链接时候~没有转换为绝对路径的问题。

于是这次进入/home/deadpool下建立软链接:deadpool@deadpool-K53SD:~$ ln -s /usr/bin/netease-cloud-music CloudMusic3.symbol

file CloudMusic3.symbol时候建立成功。

那是不是因为~的原因呢?继续进行实验:

建立变量pathHome=/home/deadpool

运行命令:deadpool@deadpool-K53SD:/usr/bin$ ln -s netease-cloud-music $pathHome/CloudMusic5.symbol
查看结果:deadpool@deadpool-K53SD:~$ file CloudMusic5.symbol
CloudMusic5.symbol: broken symbolic link to netease-cloud-music


实验到这里基本认定是变零$pathHome或者~在路径解析时候出现错误,导致建立的软链接文件。

可是以上操作都是在/usr/bin下的操作,虽然之前将这个目录的权限都改为777后仍然不行,但还是觉得应该在/home/deadpool下重新试一遍

进入/home/deadpool重复 ~和$pathHome建立软链接文件,如下图发现建立成功了!?

这样总结来并不是变量的问题???也就是$pathHome ~是完全没有问题的?是因为在/usr/bin 下的运行ln会失败,在/home/deadpool下成功?

为了排除~ 和变量的影响,这次在/usr/bin下用绝对路径试一下,发现还是会失败,应该就是路径的原因:







苦恼。。。


又把权限什么的换成777模式,重新试了一遍还是不行:




所以这个问题与权限无关,也与~ $pathHome无关,只是因为路径不同,软链接就建立不成功?看了下晚上的一些介绍:

"软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。"

"建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
在不同系统之间建立软链接、对目录建立链接,这里就不举例了"

来自http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199534.html

其他关于软链接的文章:http://blog.csdn.net/xiexbb/article/details/1782764

http://blog.csdn.net/donahue_ldz/article/details/15813131

因此即使/ 与 /home不再一个文件系统软链接应该也能建立。因此这到底是什么原因?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值