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节点而是通过文件名来找到原文件?
课程中说错了,符号链接(所谓软链接)的block中保存的是源文件的文件名,不是源文件的inode。
课程中竟然有这么大的错误!...
感觉老湿讲错了,软链接是记录块中记录的是目标文件名,而不是目标文件inode,如果是inode,删除目标文件,因为有硬链接的存在,使得inode依然存在,则软连接依然有效,所以记录的不是文件inode;删除目标文件,在新建一个相同文件名的文件(内容不同),则软连接就再次有效了,所以软连接记录的是目标文件名,而不是inode;此时,硬链接和软连接的数据是不同的
可以这样验证这一点:
用ls查看符号链接的大小,会发现其大小等于源文件名的字节数。
可以证明符号链接中保存的是目标文件名
按你说的做了一遍,并没有出现你说的情况,可以把你做的分享一下吗
Linux达人养成计划 I
399416 学习 · 3791 问题
相似问题