硬链接与软链接

来源:互联网 发布:阿里云手机root 编辑:程序博客网 时间:2024/05/22 04:52

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

硬链接
通过文件系统的inode来产生新文件名,而不是新文件。
用硬链接来设置链接文件时,磁盘空间与inode的数目都不会变。
可用命令ln 来建立硬链接
这里写图片描述
可以发现两个文件名都连接到402197这个inode号码,其实这两个文件名是一模一样的文件。如下图为读取到正确数据的方式:
这里写图片描述
上图意思为:可以通过1或2的目录inode指定的block找到两个不同的文件名,不管使用哪个文件名均可以指到real那个inode去读到最终数据。

优点:如果将任何一个“文件名”删除,inode与block还是存在的。此时可以通过另外一个“文件名”来读取到正确的文件数据。另外,不论使用哪个“文件名”来编辑,最终的结果都会写入到相同的inode与block中,军你呢对数据进行修改。

缺点:硬链接只能在单一文件系统中进行,不能跨文件系统。不能链接到目录。

软链接
 软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
断链:链接文件链接了不存在的文件。
可用命令ln -s建立软链接
这里写图片描述
由上面的结果可知两个文件指向不同的inode号码,故是两个独立文件的存在。如下图为读取到正确数据的方式:
这里写图片描述
由1号文件inode读取到链接文件的内容仅有文件名,根据文件名连接到正确的目录取得目标文件的inode,最终嗯呢该读取到正确的数据。如果目标文件这里写图片描述被删除,整个环节就回无法继续进行,会发生无法通过链接文件读取的问题。

硬链接与软链接的区别:
1、硬链接原文件&链接文件共用一个inode号,说明他 们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;
2、在文件属性上软链接明确写出了是链接文件,而硬链接没有写 出来,因为在本质上硬链接文件和原文件是完全平等关系;
3、链接数目是不一样的,软链接的链接数目不会增加;
4、文件大小是不一样的,硬链接文件显示的大小是跟原 文件是一样的,而这里软链接显示的大小与原文件就不同了。

原创粉丝点击