Linux的硬链接和软连接的区别

Linux系统的硬链接和软链接是有很多区别的。

1.本质区别:

硬链接本质上是同一个文件
软链接本质上不是同一个文件

2.inode节点号有区别:

硬链接有与源文件相同的inode节点号
软链接与源文件的inode节点号不同

3.文件的类型有区别:

硬链接与源文件是相同的文件类型
软链接与源文件是不同的文件类型

4.链接数有区别:

创建新的硬链接,链接数会增加,删除硬链接,链接数会减少
创建,删除软链接,链接数没有变化

5.删除源文件对链接有没有影响:

删除硬链接的源文件,链接数会减1,但是链接文件的访问不受影响
删除软链接的源文件,软链接文件将无法访问

6.是否支持跨分区创建链接:

硬链接不支持跨分区创建
软链接支持跨分区创建

7.是否支持对目录创建链接:

硬链接不支持对目录创建
软链接支持对目录创建

8.相对路径有区别:

硬链接:源文件的相对路径是相对于当前工作目录
软链接:源文件的相对路劲是相对于链接文件的的相对路径

举例来说明前4点区别:

硬链接和软链接都可以使用ln命令创建:

ln 源文件 硬链接文件
ln -s 源文件 软链接文件

我们对/data/test下的文件passwd.txt创建硬链接和软链接,看看它们的前4点不同;然后使用ll -i /data/test命令列出它们的详细信息

先使用下面的命令列出源文件的原始信息
ll -i /data/test
使用下面的命令创建硬链接
ln /data/test/passwd.txt /data/test/passwd1.txt
使用下面的命令创建软链接
ln -s /data/test/passwd.txt /data/test/passwd.txt.link
下面的命令列出/data/test下所有文件的详细信息
ll -i /data/test

看上图,可以知道硬链接passwd1.txt文件与源文件passwd.txt是同一个文件。

它们的inode节点号都是136
它们的文件类型一样,都是普通文件(-);它们的权限都是rw-r--r--;它们的所有者都是root;它们所属组都是root;
它们的大小都是96;它们的创建时间一样
创建硬链接passwd1.txt后,它们的链接数由1变成2了,链接数增加

再比较软链接passwd.txt.link与源文件passwd.txt可以知道,它们是不同的文件:

软链接passwd.txt.link文件的inode节点号是137,而源文件passwd.txt的inode节点号是136;
软链接passwd.txt.link文件的类型是链接文件(l),而源文件passwd.txt的文件类型为普通文件(-);
软链接passwd.txt.link文件的权限是rwxrwxrwx,而源文件passwd.txt的权限是rw-r--r--;
软链接passwd.txt.link文件大小是8,而源文件的大小是1;
软链接passwd.txt.link文件与源文件passwd.txt的创建时间不一样;
软链接passwd.txt.link文件连接数是1,而源文件的链接数是2。

举例说明删除源文件对链接文件的影响

我们把源文件/data/passwd.txt删除,来看看硬链接和软链接的变化:

使用下面的命令删除源文件
rm -f /data/test/passwd.txt
使用下面的查看所有的信息
ll -i /data/test

从上图可以看到,删除源文件passwd.txt后,硬链接文件passwd1.txt可以继续使用,只是链接数变为1;
而软链接则出现不能正常访问的问题。

硬链接不能支持跨分区与对目录进行创建;而软链接则支持。

举例说明:

先使用lsblk命令查看硬盘的分区情况,可以看到根"/"和/data在不同的分区。

lsblk
我们把/data/test/passwd.txt的硬链接和软链接创建在根目录下
ln /data/test/passwd.txt /passwd1.txt
ln -s /data/test/passwd.txt /passwd.txt.link
使用下面的命令查看根目录下文件详细信息
ll -i /

从上图1可以看到,跨分区创建硬链接时出现报错,无法创建;
从上图2可以看到,跨分区创建软链接成功。

我们在/data/test目录下创建目录passwd,然后对其创建硬链接和软链接。

使用下面的命令创建新目录
mkdir /data/test/passwd
ln /data/test/passwd /data/test/passwd1
ln -s /data/test/passwd /data/test/passwd.link

从上图可以得知,硬链接不能对目录创建;软链接可以对目录创建

posted @ 2021-02-08 15:06  生活很无奈  阅读(3662)  评论(0)    收藏  举报