linux软链接硬链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux软链接硬链接相关的知识,希望对你有一定的参考价值。

一.Linux系统硬链接和软链接
在linux系统中有种文件是链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。

查看bin下面的文件

$ cd /bin
$ ls -l

技术图片

上图文件列表中第一列权限位标识第一个字符显示的是文件类型

-:为一般文件
d:为目录
l:显示的就是链接文件

直接读取所有的链接,所有的位标识字符位l

$ cd /bin
$ ls -alR | grep ^l

技术图片

二.软链接硬链接区别
参考网址
Linux 文件被分成两个部分:用户数据 (user data) 与元数据 (metadata)

用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
元数据,是文件的附加属性,如文件大小、创建时间、所有者等信息。

在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

技术图片

为解决文件的共享使用,Linux 系统引入了两种链接
硬链接(Hard Link)
软链接(Soft Link),又称符号链接(Symbolic Link)
可以看出
技术图片
硬链接:一个 inode 号对应多个文件名,或者说同一个文件使用了多个别名
软链接:文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接

区别
(1)对象不同
硬链接:只能应用于文件,而不能应用于目录,而且不能跨文件系统(即分区)。

软链接:可以应用于文件,而且可以应用于目录和可跨文件系统(分区)。
(2)作用原理
硬链接:一个 inode 号对应多个文件名,如果删除其中任何一个文件,另外一个文件还能连接数据块,还是有效的文件,只是对应的inode节点号减少,其它并无影响。只有inode节点号减少到0,数据块才会被系统回收,即硬链接文件和原文件其实是同一个文件,只是名字不同

软链接:假如说A文件是B文件的软连接文件,则A和B的inode节点号不同,每创建一个新的软链接,就会有一个新的节点号。而A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

二.软链接、硬链接使用
(1)创建方法

软链接(符号链接) ln -s source target
硬链接 (实体链接)ln source target

创建test_link文件夹,并在里面创建 infile文件
技术图片

创建目录A,硬链接不能指向目录
技术图片

软连接可以,如

$ ln -s A infile_name

技术图片

(2)删除方法

技术图片

以上是关于linux软链接硬链接的主要内容,如果未能解决你的问题,请参考以下文章

Linux中硬链接文件和软链接文件有啥区别?

Linux硬链接,软连接和复制的区别

Linux软链接和硬链接

Linux系统硬链接和软链接

linux中软链接和硬链接的区别与小结

Linux 下的软链接和硬链接