linux中的硬链接和软链接比较

本文详细介绍了Linux系统中的硬链接和软链接的区别,包括它们如何存储文件元数据、内容同步、以及源文件变化对链接文件的影响。还展示了如何创建和查看硬链接与软链接,并讨论了删除源文件后的行为。
摘要由CSDN通过智能技术生成

命令格式:

ln -s 源文件 目标文件 #创建软连接
ln s 源文件 目标文件 #创建硬链接

查看实验环境 

[root@localhost ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.2 (Ootpa)

创建一个hosts文件,查看文件详情

[root@localhost ~]# cp /etc/hosts .
[root@localhost ~]# ll hosts 
-rw-r--r--. 1 root root 158 8月  26 12:45 hosts
[root@localhost ~]# stat hosts 
  文件:hosts
  大小:158       	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:16827012    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-08-26 12:45:34.186486440 +0800
最近更改:2023-08-26 12:45:34.186486440 +0800
最近改动:2023-08-26 12:45:34.186486440 +0800
创建时间:-

创建硬链接/tmp/hosts1

  1 查看源文件和硬链接详情,发现源文件和硬链接的inode号,大小都一样,并且源文件硬链接数目增加了1。

 2 硬链接文件是文本文件。

ln hosts /tmp/hosts1

 用相对路径创建软链接/tmp/hosts2

ln -s hosts /tmp/hosts2

查看发现软连接报错,创建失败

删除后再次用绝对路径创建软连接/tmp/hosts2

ln -s /root/hosts /tmp/hosts2

查看软连接创建成功

 注:创建软连接是使用绝对路径

查看源文件和软链接文件详情

1 软连接指向了源文件

2 软连接和源文件的大小、inode不一样

查看源文件、硬链接、软连接文件内容,文件内容是一样的

[root@localhost ~]# cat /tmp/hosts2
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# cat /tmp/hosts1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 删除源文件后查看硬链接,软链接文件内容,以及文件状态

 1 因链接文件可以查看,软连接文件内容不存在

2 硬链接文件的硬链接数目改变为1

3 软连接再次提示失败

[root@localhost ~]# rm hosts 
rm:是否删除普通文件 'hosts'?y
[root@localhost ~]# cat /tmp/hosts1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# cat /tmp/hosts2
cat: /tmp/hosts2: 没有那个文件或目录

 再次创建文件hosts,发现/tmp/hosts2恢复正常并且可以查看内容,

1 新的源文件的inode号已改变

 

 源文件中内容改变时,硬链接和软链接文件内容都改变

[root@localhost ~]# stat hosts 
  文件:hosts
  大小:158       	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:16827015    硬链接:2
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-08-26 14:11:33.337466760 +0800
最近更改:2023-08-26 14:10:34.612466984 +0800
最近改动:2023-08-26 14:16:42.321465581 +0800
创建时间:-
[root@localhost ~]# stat /tmp/hosts1
  文件:/tmp/hosts1
  大小:158       	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:16827015    硬链接:2
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-08-26 14:11:33.337466760 +0800
最近更改:2023-08-26 14:10:34.612466984 +0800
最近改动:2023-08-26 14:16:42.321465581 +0800
创建时间:-
[root@localhost ~]# stat /tmp/hosts2
  文件:/tmp/hosts2 -> /root/hosts
  大小:11        	块:0          IO 块:4096   符号链接
设备:fd00h/64768d	Inode:25717935    硬链接:1
权限:(0777/lrwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2023-08-26 14:17:00.976465510 +0800
最近更改:2023-08-26 14:16:34.937465609 +0800
最近改动:2023-08-26 14:16:34.937465609 +0800
创建时间:-
[root@localhost ~]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# cat /tmp/hosts1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# cat /tmp/hosts2
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# echo "ceshi" > hosts 
[root@localhost ~]# cat hosts 
ceshi
[root@localhost ~]# cat /tmp/hosts1
ceshi
[root@localhost ~]# cat /tmp/hosts2
ceshi
[root@localhost ~]# ll /tmp/hosts1
-rw-r--r--. 2 root root 6 8月  26 14:17 /tmp/hosts1
[root@localhost ~]# ll /tmp/hosts2
lrwxrwxrwx. 1 root root 11 8月  26 14:16 /tmp/hosts2 -> /root/hosts

总结:

1 硬链接存储了存储在硬盘中文件本身(data数据)的元数据,所以和源文件的元数据一样,具有相同的大小,inode等,硬链接指向存储在硬盘中文件本身。

2 软链接是指向源文件的一个链接,软链接存储了源文件的元数据,并不是存储在硬盘本身文件(data数据)的元数据。

3 源文件内容发生改变时,链接文件内容也会改变。

4 源文件删除后,硬链接可以查看文件内容,软链接文件无法查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值