软链接和硬链接的区别

Linux链接概念

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。

硬链接


硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软链接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

通过实验加深理解

[root@chenshuhui7 19:49:47 323 csh]# touch f1          #创建一个测试文件f1
[root@chenshuhui7 19:49:52 324 csh]# ln f1 f2          #创建f1的一个硬连接文件f2
[root@chenshuhui7 19:49:59 325 csh]# ln -s f1 f3           #创建f1的一个符号连接文件f3
[root@chenshuhui7 19:50:16 326 csh]# ls -li           # -i参数显示文件的inode节点信息
total 0
137767756 -rw-r–r–. 2 root root 0 Oct 20 19:49 f1
137767756 -rw-r–r–. 2 root root 0 Oct 20 19:49 f2
137767757 lrwxrwxrwx. 1 root root 2 Oct 20 19:50 f3 -> f1
从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为137767756,然而符号连接文件的inode节点不同。

[root@chenshuhui7 19:50:42 327 csh]# echo "I am f1 file">>f1
[root@chenshuhui7 19:55:08 328 csh]# cat f1
I am f1 file
[root@chenshuhui7 19:55:17 329 csh]# cat f2
I am f1 file
[root@chenshuhui7 19:55:22 330 csh]# cat f3
I am f1 file
[root@chenshuhui7 19:55:40 331 csh]# rm -f f1
[root@chenshuhui7 19:55:47 332 csh]# cat f2
I am f1 file
[root@chenshuhui7 19:55:51 333 csh]# cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

3.总结
做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

 

完!


原创文章,作者:Zero,如若转载,请注明出处:http://www.178linux.com/53057

(0)
ZeroZero
上一篇 2016-10-29 21:03
下一篇 2016-10-29 21:03

相关推荐

  • CentOS 6 系统启动流程

    一、CentOS 6 启动流程 1.加载BIOS的硬件信息,获取第一个启动设备。 2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息 3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备。 4.核型执行init程序并获取运行信息。 5.Init执行/etc/rc.d/rc.sysinit文件。 6.启动核心的外挂模块(/et…

    Linux干货 2016-09-12
  • HAProxy 入门及基础负载应用

    A、首介 。。。         HAProxy——开放源代码软件,是一款代理服务器和伪4层的负载均衡软件解决方案。基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持高并发链接,它的工作模式可以将其简单而安全地整合到当前的服务架构中,同时可以保护你的WEB服务器不暴露到…

    Linux干货 2017-05-17
  • 使用fail2ban防止暴力破解ssh及vsftpd密码

    此文介绍一个linux下通过监控日志防止密码被暴力破解的软件-fail2ban。fail2ban支持常用的服务,如sshd, apache, qmail, proftpd, sasl, asterisk等的密码验证保护,当发现暴力破解的迹像时,可以通过iptables, tcp-wrapper, shorewall等方式阻止此IP的访问。 python安装 …

    Linux干货 2015-03-04
  • gawk

    简介     AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自…

    Linux干货 2016-03-25
  • Linux发展史

    Linux发展史 本篇文章主要介绍Linux是什么,Linux是怎么来的,Linux能干些什么等 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它之所以如此受到人们的欢迎,是因为它开源,是因为它简洁,更因为它稳定。作为一个普通用户,或许你没接触过电脑的Linux系统,但…

    Linux干货 2016-10-14
  • 马哥教育网络20期+第8周练习博客

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:链接层设备,基于MAC地址过滤。 集线器:物理层设备,基本都属于半双工模式。集线器与网桥在现在的局域网中基本都不用了。 二层交换机:基本MAC转发数据,功能齐全的可支持VLAN等功能。常见的有100/1000M、16口/24口/48口。 三层交换机:功能齐全的交换机,具备都…

    Linux干货 2016-08-01