为什么Linux中源文件删除后,硬链接还可以打开该文件

来源:百度知道 编辑:UC知道 时间:2024/06/14 00:31:21
如题:
十分困惑
硬连接到底连接到哪里拉,是硬盘上的数据吗?
那删除的是什么,如果删除的仅是inode的连接,那硬盘岂不是越来越小,如果不是为什么,还连接的上
另一问题:普通用户建的文件权限-rwx------ 问这个文件root可否改动,root是万能的吗? 如果可改动那权限那里怎么解释?

若想知道原因,首先要知道什么是硬链接:硬连接指通过索引节点来进行连接。
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

这个解释起来不好理解!你要知道linux的文件系统存储数据实际上都分为两个部分:inode和data。inode存储的是数据的属性(例如rwx等),data里面存储的是数据。硬链接就是在inode里面加了一个指向同一个数据的标记。删除的时候只是把这个标记删除了,所以硬链接还可以打开!具体的你在网上搜搜看看吧再!
补充:删除的不是inode,是里面的数据。inode从有一个指向的数据到为空,数量不变的。所以不会让硬盘变小。root是万能的,对于所有文件,即使默认情况下(eg:chattr改变成a属性时候,root也不能删除文件。但可以通过chattr改回来,再删)不能更改,也可以通过改变属性使之能够更改!

硬连接是copy一份原来的文件,要加软连接就不会出现你这样的问题。
你打开的是copy的副本,不是一个连接。

所有文件都只不过是存储器上一段空间的链接,你删除了原文件,但并没有刷掉这段空间。

学习一下...