Linux下的硬链接和软链接

Linux下的硬链接和软链接

1、【硬链接】(Hard Link),指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,称为索引节点号(Inode Index)。当多个文件名指向同一索引节点时,就形成了硬链接。硬链接的好处是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止误删。删除其中一个连接不会影响索引节点本身和其他连接,只有当最后一个连接被删除时,文件的数据块及目录的连接才会被释放。
2、【软链接】也叫符号链接(Symbolic Link),软链接类似于Windows的快捷方式,它实际上是一个特殊文件。在软链接中,文件实际上是一个文本文件,其中包含的有另一个文件的位置信息。
实例:

[root@admin home]# touch a.txt  #创建一个文件a.txt
[root@admin home]# ln a.txt c.txt   #创建a的一个硬链接文件c.txt
[root@admin home]# ln -s a.txt a1.txt  #创建a的一个软链接文件a1.txt
[root@admin home]# ls -li   # -i 参数显示文件inode节点信息
total 4
1179663 lrwxrwxrwx. 1 root root    5 Jun  2 08:51 a1.txt -> a.txt
1179664 -rw-r--r--. 2 root root    0 Jun  2 10:32 a.txt
1179664 -rw-r--r--. 2 root root    0 Jun  2 10:32 c.txt
1179661 drwxr-xr-x. 2 root root 4096 Jun  2 08:51 dir1
1179660 -rw-r--r--. 1 root root    0 Jun  2 08:36 training

从上面的结果中可以看出,硬链接文件c和a的inode节点相同,都是 1179664,而软链接文件的inode节点不同,为1179663。

[root@admin home]# echo "I am a test file">>a.txt
[root@admin home]# cat a.txt
I am a test file
[root@admin home]# cat c.txt
I am a test file
[root@admin home]# cat a1.txt
I am a test file
[root@admin home]# rm -f a.txt
[root@admin home]# cat c.txt
I am a test file
[root@admin home]# cat a1.txt
cat: a1.txt: No such file or directory

通过上面的测试,可以看出:当删除原始文件a.txt后,硬链接c.txt不受影响,但是软链接a1.txt文件无效。
总结:
◆ 删除软链接a1.txt,对a.txt、c.txt无影响;
◆ 删除硬链接c.txt,对a.txt、a1.txt无影响;
◆ 删除原文件a.txt,对硬链接c.txt无影响,但软链接a1.txt变为无效;
◆ 同时删除a.txt,硬链接c.txt,整个文件会被真正的删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值