一个文件由三部分信息组成:inode、文件路径(包含名字)、数据区。
硬连接:inode和数据区不变,文件路径增加一个,并更新inode中的文件路径数量。
软连接:在另外一个地方新建一个inode,如果原文件路径短的话,在inode中包含原文件的路径信息。如果原文件路径长,则新建一个文件,并在新文件中包含原文件的路径信息。数据区共享。
文件复制:三部分信息全部复制。
硬连接只能对文件创建,软连接可以对目录和文件创建。
硬连接中源文件和链接文件必须位于同一文件系统中。软件连接则不必。
删除源文件后,硬连接变为一个普通文件,软链接则成为“断链接”。
目录:一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。 linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。
举例:
一个目录parent,位于grade目录下,parent目录下有三个目录a、b、c,则parent的硬连接数目是5。
分别是grade下面的一个(parent),parent目录下的一个(.),a、b、c下面各有一个(..)