我学到了与HardLink不同的是,SoftLink实际上是在硬盘中存储原始文件的信息。我制作了test1 (原始文件)和test2(软链接的test1),然后我mv(重命名)test1到test3,所以softlink test2->test3 1变成了红色和失活。我认为链接使用Inode号,test1和test3有相同的Inode编号,但是SoftLink不工作。
以下是问题:软链接需要哪些信息才能激活Link??
发布于 2018-03-14 03:53:31
软链接,也称为符号链接,跟踪一个文件的名称,而不是它的inode。正因为如此,您链接到的文件可以定位在任何地方,而不仅仅是在同一个文件系统上(与硬链接不同);另一个特性是,软链接可以指向其他软链接,最多可以指向其他软链接。软链接本质上是一个特殊的文件,它将目标路径存储在其中,但是Linux知道这种类型的文件,并读取“内部”路径,并尝试使用目标文件的权限访问该文件。程序可以要求Linux不要遵循链接,而是提供有关文件本身的信息(这是ls可以向您显示目标路径的方式);然而,大多数程序只关心链接指向的位置。
因此,要回答你的问题,一个软链接包含所有的信息,是需要的内部。然后,操作系统完成所有跟踪链接指向的位置的工作。
发布于 2018-03-15 15:27:33
软链接只链接到文件名,而不链接到inode编号。如果重命名原始文件,软链接就会中断,而链接现在不知道它指向何处。贴出这张照片的答案之一(我不记得,我很久以前就把这张照片保存在手机里了):

如果原始文件被重命名,my-soft-link将指向一个不再存在的文件名,因此当链接或指针被破坏时会变成红色。在这种情况下,my-soft-link将类似于一个悬空指针。它指向一个不存在的文件。
另一方面,硬链接中没有这样的问题,因为硬链接直接指向inode号。因此,如果重命名原始文件,my-hard-link将不会成为一个悬空指针。
因此,为了重新激活符号链接,可以通过使符号链接指向重命名的文件来更新符号链接。
ln -sfn test3 test2https://unix.stackexchange.com/questions/430088
复制相似问题