为了账号安全,请及时绑定邮箱和手机立即绑定

软链接的链接原理疑点

我在mac做如下测试: 1.新建一个test,这里称它test(1),查看其i节点为1 2.软链接test(1)取名soft 3.删test,cat soft 报:不存在文件 4.再新建一个test,这里称test(2),查看其i节点为2,cat soft 正常显示test(2)里的内容 您在视频里说:软链接保存的block数据内容是存放原文件的i节点数据,通过这个i节点再找到原文件的数据,而我测试中soft新建的时候就是指向test(1)的i节点1所在数据块,为何同样的soft文件最后依旧能正常链接到了i节点为2的test(2)的数据内容呢?难道它不是通过i节点而是通过文件名来找到原文件?

正在回答

4 回答

课程中说错了,符号链接(所谓软链接)的block中保存的是源文件的文件名,不是源文件的inode。

课程中竟然有这么大的错误!...

1 回复 有任何疑惑可以回复我~

感觉老湿讲错了,软链接是记录块中记录的是目标文件名,而不是目标文件inode,如果是inode,删除目标文件,因为有硬链接的存在,使得inode依然存在,则软连接依然有效,所以记录的不是文件inode;删除目标文件,在新建一个相同文件名的文件(内容不同),则软连接就再次有效了,所以软连接记录的是目标文件名,而不是inode;此时,硬链接和软连接的数据是不同的

0 回复 有任何疑惑可以回复我~

可以这样验证这一点:

用ls查看符号链接的大小,会发现其大小等于源文件名的字节数

可以证明符号链接中保存的是目标文件名

0 回复 有任何疑惑可以回复我~
#1

taylorfeng 提问者

感觉好多东西还值得自己去推敲
2016-04-18 回复 有任何疑惑可以回复我~

按你说的做了一遍,并没有出现你说的情况,可以把你做的分享一下吗


0 回复 有任何疑惑可以回复我~
#1

taylorfeng 提问者

就是对一个原文件建立软链接,软链接文件不动,删除掉原文件,再新建一个与之同名的文件,此时原文件和后来新建的i节点是不同的,但是那个软链接的文件却完全没问题地指向了后面新建的那个文件并可以正常使用。
2016-01-12 回复 有任何疑惑可以回复我~
#2

biueangel 回复 taylorfeng 提问者

windows8.1虚拟机下试了一下,出现你说的问题,然后@onemoo解释的应该是对的
2016-01-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux达人养成计划 I
  • 参与学习       399412    人
  • 解答问题       3791    个

Linux入门视频教程,以通俗易懂的语言带你感受linux之美

进入课程

软链接的链接原理疑点

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信