在linux系统中有一种文件叫做链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(HardLink),另一种是软链接或者也称为符号链接(SymbolicLink)。 一、基本概念 1、硬链接 开始之前,...
在linux系统中有一种文件叫做链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。
一、基本概念
1、硬链接
开始之前,先解释一个概念,叫做索引节点(Inode)。
在Linux的文件系统中,保存在磁盘分区中的文件,不管是什么类型,系统都会给它分配一个编号,这个编号被称为索引节点编号(Inode Index),它是该文件或者目录在linux文件系统中的唯一标识。有了这个编号值,就可以查到该文件的详细内容。
同时,Linux系统还规定,可以允许多个文件名同时指向同一个索引节点(Inode),这就是硬链接。这样设计有一个好处就是,只要文件的索引节点还存在一个以上的链接,删除其中一个链接并不影响索引节点本身和其他的链接(也就是说该文件的实体并未删除),而只有当最后一个链接被删除后,且此时有新数据要存储到磁盘上,那么被删除的文件的数据块及目录的链接才会被释放,存储空间才会被新数据所覆盖。因此,该机制可以有效的防止误删操作。
硬链接只能在同一类型的文件系统中进行链接,不能跨文件系统。同时它只能对文件进行链接,不能链接目录。
2、软链接
软链接(也叫符号链接),类似于windows系统中的快捷方式,与硬链接不同,软链接就是一个普通文件,只是数据块内容有点特殊,文件用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。
软链接常用来解决空间不足的问题,比如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中。
软链接可以跨文件系统而链接,也可以同时对文件或目录进行链接。
3、二者区别
软链接以存放另一个文件的路径的形式存在,硬链接以文件副本的形式存在;软链接可以跨不同的文件系统而链接,硬链接不可以;软链接可以对目录进行