软连接与硬链接的区别

  1. 为test文件创建硬链接如下:

shell-test:/u/nanaal/shell$ cp -l test test1
shell-test:/u/nanaal/shell$ ln -l test test2
shell-test:/u/nanaal/shell$ ls -li
total 12
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test1
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test2
命令ls显示的第一列为文件索引,在文件系统每个文件都有一个唯一的索引值。从上面的信息可以知道,test、test1、test2共享一份文件,且链接计数为3(ls显示结果的第三列)。根据上面信息,硬链接可表示为:


Note:
硬链接的所有文件必须在一个硬盘上,如test在磁盘/dev/sda1上面,那么test1和test2也必须在/dev/sda1上面。
  1. 为test文件创建软链接如下:

shell-test:/u/nanaal/shell$ cp -s test test3
shell-test:/u/nanaal/shell$ ln -s test test4
shell-test:/u/nanaal/shell$ ls -li
total 12
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test1
4298659818 -rw-rw-r--. 3 nanaal nanaal 6 Apr 19 06:24 test2
4298103063 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test3 -> test
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls命令的输出结果可以看到, test3和test4的文件索引值均与test的索引值不同,即test3和test4均是新的文件,但是文件大小比test小,且链接计数为1. 软链接文件test3、test4只保存了源文件test的文件信息,并没有对test文件指定的数据进行拷贝。根据上面信息,软链接可表示为如下:



Note:
软链接的所有文件可以保存在不同的磁盘上。如test在磁盘/dev/sda1上面,test3和test4可以保存在/dev/sda2上面。
  1. 修改文件
1) 修改源文件test
2) 修改硬链接文件test1或test2
3) 修改软链接文件test3或test4
修改上面的文件,会发现所有的文件均跟着修改了,这这方面,软链接和硬链接没有区别。
  1. 删除文件
1)删除硬链接文件

shell-test:/u/nanaal/shell$ rm -rf test1
shell-test:/u/nanaal/shell$ ls -li
total 8
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test2
4298103063 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test3 -> test
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls的输出可以看到,删除文件test1后,test和test2的链接计数由3变成了2. 文件test和test2可以正常阅读。

2) 删除软链接文件

shell-test:/u/nanaal/shell$ ls -li
total 8
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test
4298659818 -rw-rw-r--. 2 nanaal nanaal 6 Apr 19 06:24 test2
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls的输出来看,删除文件test3,对其他文件没有任何影响。且文件test和test4可以正常阅读。

3) 删除源文件
shell-test:/u/nanaal/shell$ rm -rf test
shell-test:/u/nanaal/shell$ ls -li
total 4
4298659818 -rw-rw-r--. 1 nanaal nanaal 6 Apr 19 06:24 test2
4304030281 lrwxrwxrwx. 1 nanaal nanaal 4 Apr 19 06:43 test4 -> test
从ls的输出可以看出,删除文件test后,test2的链接计数由2变为1,可以阅读。文件test4属性没有任何变化,但是已经不能阅读。硬链接和软链接在这点的不同,可以表示如下:

硬链接文件删除操作:

软链接文件删除操作: 
 

以上是我总结的软链接与硬链接的不同。如有遗漏或错误的地方,欢迎大家指正。
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值