软链接的链接原理疑点

来源:3-5 Linux链接命令

taylorfeng

2016-01-11 18:49

我在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回答

  • onemoo
    2016-01-11 23:14:34
    已采纳

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

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

  • 火影忍者小明
    2016-03-11 15:36:27

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

  • onemoo
    2016-01-12 22:53:49

    可以这样验证这一点:

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

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

    taylor...

    感觉好多东西还值得自己去推敲

    2016-04-18 12:05:25

    共 1 条回复 >

  • linuxmpi
    2016-01-11 21:53:29

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


    biuean... 回复taylor...

    windows8.1虚拟机下试了一下,出现你说的问题,然后@onemoo解释的应该是对的

    2016-01-12 22:30:37

    共 2 条回复 >

Linux达人养成计划 I

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

399416 学习 · 3791 问题

查看课程

相似问题