主页 > 游戏开发  > 

Linux---软连接与硬链接

Linux---软连接与硬链接

              文件构成及软连接、硬连接详解

一、简介

大家在windows下可以看到我们桌面上有一些程序。双击它就可以运行了。在我们桌面上的图标只是一个快捷方式,它真正的运行路径是在其他的磁盘中。这个就是我们的windows中链接。我们的Linux系统中也存在类似的形式,在Linux中的链接形式有两种,一种叫做软链接,一种叫做硬连接。在讲解之前,大家需要先知道一些文件的基本知识。

Linux系统中一个文件由目录项(struct dirent)、inode表和数据块组成。

目录项:包括文件名和inode节点号

Inode表:包含文件的一些信息。

例如,inode号,文件类型,文件大小等待。

数据块:文件具体内容存放的地方。

当我们查看一个文件的时候,linux系统的运行过程如下图。

1、首先根据文件名,找到我们目录项中的inode号。

2、通过inode号进入我们inode表中,查找到该文件中一些信息。

3、然后通过inode表中的保存的数据区的指针,读取我们相应数据区的内容。

硬链接

本质:是给我们的文件取别名。

与源文件直接关联。修改一个,另一个同时被修改。删除一个另一个不会有影响。

Linux系统中规定,只有在文件的打开次数为0(即文件这个时候没有打开),并且文件的硬连接数为0,此时文件才会被删除

特点:

(1)不占用硬盘空间

(2)不能对目录操作

(3)不能跨文件系统

Ext4

FAT   u盘

NTFS  

命令:ln  源文件名  硬链接文件名

例如:

由上面接口可以知道,我们新建的硬链接文件,只是给源文件起了一个别名,他们共用同一个inode号。

软链接(符号链接)

本质:类似于我们windows的快捷方式,用来记录我们目标的路径

特点:

(1)占用磁盘空间 

       (2)可以对目录操作 

       (3)可以跨文件系统

命令:ln -s 源文件 软链接文件 

可以发现我们新建的hello2.c实质是我们hell1.c的快捷方式。并且他们的inode号不一样。

原理图:

从图上可以看出硬链接和软链接的区别:

1:硬链接原文件和新文件的inode编号一致。而软链接不一样。

2:对原文件删除,会导致软链接不可用,因为软连接存储是路径,而硬链接不受影响。

标签:

Linux---软连接与硬链接由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux---软连接与硬链接