总结软连接和硬连接区别?

linux中文件的inode编号的意义:

文件分为数据和元数据。

数据:用户记录在物理磁盘空间的真实数据。

元数据:分为文件名、文件大小、权限、inode编号、属主、属组、等,其中inode编号是指向其在物理磁盘中的真实的数据的。可以使用ls -l命令查看文件的inode编号。

硬链接:

硬链接就是同一个inode编号,不同文件的名字。

软链接:

是一个文件指向文件的路径,相当于windows的快捷方式。

硬链接的特性:

1不能跨文件系统创建硬连接

在/data目录下创建f1文件,然后在根下,创建/data/f1的硬链接看看能否创建成功

图1
图2

2不能对目录创建硬链接,因为是同一个inode编号,如果对目录创建连接,就会形成死循环。

查看a目录下的inode号

图3

进入a目录下,查看隐藏文件.的inode编号和在进入b目录下查看..的inode编号

图4
图5

//这个也是linux特有的目录的硬链接了,所以在创建目录的时候,其硬链接的次数就是3。

3还有一个就是,对一个文件硬链接一次,其硬链接的次数就增加一次。

软链接的特性:

1创建软件的次数的时候,其links的次数不会增加,并且可以跨文件系统创建。

查看f1的inode为2,后使用相对路径在其文件夹下d创建其/data/f1的软链接,后查看其创建的软链接,发现未能正常创建。

图6

//因为原文件如果要写相对路径,则要相对于创建文件的相对路径,重新创建,并且不会增加硬链接数

图6

在/data/f1文件下写入数据,然后查看刚刚软链接文件,发现数据也是一样的。

图7

2软链接可以对目录创建,其大小指向的路径的字符串的长度。

创建/data/ssss 文件夹

图8

使用相对于原文件相对路径,在/dev/ssss111links

图9

查看其软连接,看看是否创建成功,其大小创建的文字的大小。

图10

总结硬链接和软连接的区别:

1硬链接不能创建目录和跨文件系统创建,软连接可以对目录和跨分区。

2每增加一次硬链接创建,其links次数便会增加一次,其inode相同。而软连接是指向另一个文件路径,其大小指向的路径字符串的长度,不会增加减少目标inode的引用计数,其inode不同。

3删除文件的硬连接的时候,对原文件不会影响,但如果原文件没有了硬连接,那么会导致文件删除。

4删除软连接的原文件的话,会导致连接指向失败。

你可能感兴趣的:(总结软连接和硬连接区别?)