当前位置 : 主页 > 编程语言 > 其它开发 >

Linux软链接和硬链接的区别

来源:互联网 收集:自由互联 发布时间:2022-05-30
硬链接 [root@daben ~]# cat a.txt #原文件为a.txthello[root@daben ~]# ln a.txt hard.txt#创建一个硬链接hard.txt[root@daben ~]# ll -ih a.txt hard.txt#查看文件属性,两个文件属性相同总用量 8.0K393724 -rw-r--r-- 2 r

硬链接

[root@daben ~]# cat a.txt 	#原文件为a.txt
hello
[root@daben ~]# ln a.txt hard.txt	#创建一个硬链接hard.txt
[root@daben ~]# ll -ih a.txt hard.txt	#查看文件属性,两个文件属性相同
总用量 8.0K
393724 -rw-r--r-- 2 root root 6 3月  29 13:46 a.txt
393724 -rw-r--r-- 2 root root 6 3月  29 13:46 hard.txt
[root@daben ~]# rm -f a.txt 	#删除原文件
[root@daben ~]# cat hard.txt 	#硬链接仍可正常使用
hello
[root@daben ~]# ll -ih 
总用量 4.0K
393724 -rw-r--r-- 1 root root 6 3月  29 13:46 hard.txt

#结论:硬链接相当于原文件a.txt的另一个名称,两者均指向了inode表中的同一项记录。可简单理解为两个不同名称的指针指向了同一块内存数据。删除原文件只是删除了其中一个指针指向,不影响硬链接的使用,反之亦然。

软链接

[root@daben ~]# cat a.txt	#原文件
hello

#以相对路径创建软链接
[root@daben ~]# ln -s a.txt soft.txt	#创建一个软链接soft.txt(注意此处a.txt是以相对路径引用)
lrwxrwxrwx 1 root root 5 3月  29 14:25 soft.txt -> a.txt
[root@daben ~]# ll -ih	#观察到两个文件属性均不一样
总用量 4.0K
393724 -rw-r--r-- 1 root root 6 3月  29 13:46 a.txt
393721 lrwxrwxrwx 1 root root 5 3月  29 14:25 soft.txt -> a.txt
[root@daben ~]# cat soft.txt 	#软链接正常
hello

##移动软链接
[root@daben ~]# mv soft.txt /opt/
[root@daben ~]# ll -ih /opt/
总用量 0
393721 lrwxrwxrwx 1 root root 5 3月  29 14:25 soft.txt -> a.txt
[root@daben opt]# cat soft.txt 	#软链接失效
cat: soft.txt: 没有那个文件或目录

#使用绝对路径创建软链接
[root@daben ~]# ln -s ~/a.txt soft2.txt
[root@daben ~]# ll	#观察发现软链接指向的原文件路径是绝对路径
总用量 4
-rw-r--r-- 1 root root  6 3月  29 13:46 a.txt
lrwxrwxrwx 1 root root 11 3月  29 15:10 soft2.txt -> /root/a.txt
[root@daben ~]# cat soft2.txt   	#软链接正常
hello
[root@daben ~]# mv soft2.txt /opt/	#移动软链接
[root@daben ~]# ll /opt/
总用量 0
lrwxrwxrwx 1 root root 11 3月  29 15:10 soft2.txt -> /root/a.txt
lrwxrwxrwx 1 root root  5 3月  29 14:25 soft.txt -> a.txt
[root@daben ~]# cat /opt/soft2.txt 	#软链接正常
hello

##删除原文件后软链接失效
[root@daben ~]# rm -f a.txt 
[root@daben ~]# cat /opt/soft2.txt
cat: /opt/soft2.txt: 没有那个文件或目录
[root@daben ~]# ll /opt/soft2.txt
lrwxrwxrwx 1 root root 11 3月  29 16:04 /opt/soft2.txt -> /root/a.tx

硬链接和软链接区别总结(其中几项未做演示、后续有空再补上)

1. 本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件
2. 跨设备
硬链接:不支持
软链接:支持
3. inode
硬链接:相同
软链接:不同
4. 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5. 文件夹硬链接:不支持
软链接:支持
6. 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7. 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8. 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
9. 文件大小
硬链接: 和源文件相同
软链接: 源文件的路径的长度
网友评论