当前位置: 首页 > Linux

Linux硬链接和软链接的区别

时间:2023-04-06 05:30:12 Linux

硬链接和软链接的区别Linux和其他类UNIX系统一样,不区分文件和目录:目录是记录其他文件名的文件。我们知道文件有文件名和数据,在Linux上分为两部分:用户数据(userdata)和元数据(metadata)。用户数据,即文件数据块(datablock),数据块是记录文件真正内容的地方;元数据是文件的附加属性,如文件大小、创建时间、所有者等信息。在Linux中,元数据中的inode号(inode是文件元数据的一部分但不包含文件名,inode号为inode编号)是文件的唯一标识,而不是文件名。文件名只是为了方便人们的记忆和使用,系统或程序使用inode号来寻找正确的文件数据块。为了解决文件的共享使用,Linux系统引入了两种链接方式。Linux系统提供了两种链接方式:硬链接(HardLink)和软链接(SoftLink),也称为符号链接(SymbolicLink),如果一个硬链接的inode号对应多个文件名,则这些文件称为硬链接.换句话说,硬链接就是对同一个文件使用多个别名(上图中的硬链接是文件的别名,它们有一个共同的inode)。由于硬链接是一个inode号相同但文件名不同的文件,所以硬链接存在以下几个特点:[x]个文件具有相同的inode和datablock;[x]只能创建现有文件;[x]不能创建跨文件系统的硬链接;[x]不能创建目录,只能在文件上创建;[x]删除硬链接文件不会影响其他具有相同inode编号的文件。软链接软链接不同于硬链接。如果一个文件的用户数据块中存储的内容是另一个文件的路径名,则该文件是一个软链接。软链接就是一个普通的文件,只是数据块的内容有点特殊。软链接有自己的索引节点号和用户数据块。因此软链接的创建和使用没有很多类似硬链接的限制:[x]软链接有自己的文件属性和权限等;[x]可以为不存在的文件或目录创建软链接;[x]软链接可以跨文件系统;[x]可以为文件或目录创建软链接;[x]创建软链接时,i_nlink的链接数不会增加;[x]删除软链接不影响指向的文件,但是如果指向的原文件被删除,相关的软链接称为死链接(即悬挂链接,如果重新创建指向的路径文件,则死链接可以恢复为正常的软链接)。参考http://www.ibm.com/developerw...