硬链接和软链接的区别

硬链接和软链接的区别

1、概念

在linux中,链接可分为两种:一种为硬链接,另一种为软链接。
硬链接:ln 源文件 目标文件
软链接:ln -s(soft)源文件 目标文件

硬链接

硬链接是指通过索引节点inode来进行链接。
linux系统中每个文件对应一个inode,并且允许多个文件名指向用一个inode。这种情况的文件就成为硬链接。
它的作用之一就是允许一个文件拥有多个入口,防止重要数据误删。

硬链接的原理:

硬链接和软链接的区别

软链接

软链接也称为符号链接,相当于windows中的快捷方式。文件类型为L,是一个特殊的文件。文件中包含了另一个文件的路径信息内容。

软链接的原理:

硬链接和软链接的区别

2、实验

实验1:首先创建一个magedufile,可以看到硬链接数为1,通过ln创建一个硬链接magedufile_link,再次通过ls -li,可以发现数字变成2,两个文件第一列inode数量都为33612019。cat硬链接内容与源文件一样。把源文件删除后,link文件依然还在,内容没丢失,链接数变为1。ln不能对目录创建硬链接。

[root@centos7 magedu]#ls -l
-rw-r–r–. 1 root root 17 Jul 23 13:38 magedufile
[root@centos7 magedu]#cat magedufile 
i am study linux
[root@centos7 magedu]#ln magedufile magedufile_link
[root@centos7 magedu]#ls -li
total 8
33612019 -rw-r–r–. 2 root root 17 Jul 23 13:38 magedufile
33612019 -rw-r–r–. 2 root root 17 Jul 23 13:38 magedufile_link
[root@centos7 magedu]#cat magedufile_link 
i am study linux
[root@centos7 magedu]#rm -f magedufile
[root@centos7 magedu]#ls
magedufile_link
[root@centos7 magedu]#cat magedufile_link 
i am study linux
[root@centos7 magedu]#ls -li
total 4
33612019 -rw-r–r–. 1 root root 17 Jul 23 13:38 magedufile_link
[root@centos7 ~]#ln Desktop Desktop.bak
ln: ‘Desktop’: hard link not allowed for directory

总结: 
    (1)具有相同inode节点号的多个文件是为互为硬链接文件
    (2)删除硬链接文件或者源文件,文件本身并未被删除
    (3)删除文件的所有硬链接和源文件,文件才真正被删除
    (4)硬链接文件是文件的另一个入口
    (5)硬链接文件可以用rm命令删除

实验2:创建一个文件,通过ln -s创建软链接后查看发现inode不同,软链接后面跟一个->指向源文件,当删除源文件后,软链接指向发生错误。

[root@centos7 app]#echo “i am study linux” >/app/magedudir
[root@centos7 app]#ls -l
total 4
-rw-r–r–. 1 root root 17 Jul 23 15:01 magedudir
[root@centos7 app]#ln -s magedudir magedudir_slink
[root@centos7 app]#ls -li 
total 4
67 -rw-r–r–. 1 root root 17 Jul 23 15:01 magedudir
68 lrwxrwxrwx. 1 root root  9 Jul 23 15:03 magedudir_slink -> magedudir
硬链接和软链接的区别

总结:
(1)快捷方式,可以通过readlink查看指向
(2)是一个文本文件。里面存放的是源文件的路径,指向源文件
(3)删除源文件,软链接依然存在,但是无法正常指向源文件
(4)失效的时候红底闪烁提示
(5)软链接和源文件是不同类型的文件,也是不同的文件。inode不相同。
(6)删除软链接文件可以用rm命令

3、区别

(1)创建方式的不同。默认不带参数的情况下,ln创建的是硬链接,带-s参数创建的是软链接
(2)硬链接文件与源文件的inode相同,而软链接文件的inode与源文件不同
(3)ln不能对目录创建硬链接,但可以创建软链接。
(4)删除文件的软链接文件,对源文件及硬链接文件无任何影响
(5)删除文件的硬链接文件,对源文件及软链接文件无任何影响
(6)删除链接文件的源文件,对硬链接文件无影响,会导致软链接失效
(7)同时删除源文件及其硬链接,整个文件才会被删除
(8)软链接可以跨文件系统,硬链接不可以跨文件系统

4、附加

文件的删除原理

文件的删除由两个变量控制:
                     i_link  文件的硬链接数量
                     i_count 引用计数(有一个程序调用就+1)
文件删除的条件:
                     i_link=0 && i_count=0

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

(0)
eleveneleven
上一篇 2017-07-23 15:05
下一篇 2017-07-23 16:44

相关推荐

  • 招聘Linux运维工程师

    岗位职责: 公司集群硬件的日常维护及管理 负责公司内网的服务器安装,部署和维护 监控服务器状态,发现问题并及时维护 负责产品发布上线 承担mangoDB的日常巡检 集群数据服务器的备份 编写服务器维护脚本,减少工作量,提高工作效率 任职要求: 1年以上Linux系统管理经验,精通Linux的管理和维护 能够熟练编排查运维过程中出现的服务故障,系统故障,网络故…

    Linux干货 2017-12-04
  • N27_网络班第九周作业

    N27_网络班第九周作业 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现 #!/bin/bash loginuser=`grep -v ‘/sbin/nologin’ /etc/passwd | wc -l` nologin=`grep …

    2017-10-10
  • socket阻塞与非阻塞,同步与异步、I/O模型

    1. 概念理解      在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前…

    Linux干货 2015-04-10
  • 细说CP使用

    cp详细用法和常用选项

    Linux干货 2017-11-26
  • 上海2016全球运维大会 美女辣妹吸引眼球!

    国内第一个运维行业大会 GOPS 2016全球运维大会(上海站)在2016年9月23-24日在上海雅悦新天地大酒店举办,面向IT及传统行业、广大运维技术人员,传播先进技术思想和理念,分享业内最佳实践。 参会两日,虽然大会主角是运维技术交流学习,不过却意料之外的邂逅了另一道靓丽的风景,瞬间燃了… 在会场,站立着一群高挑美女,我的…

    2016-12-05
  • 如何正确安装一个源码包

        下周就要考试了,心情挺忐忑不安的,前几天做了25期的考试题,感觉每个题都是老师上课讲过的,但是自己做却想不起来了。这应该就像学习数学一样,需要大量练习,做的多了自然就会了。     这周我们学习了如何使用yum,还学习了磁盘管理。针对如何安装源码包,以httpd包为例我们…

    2017-08-19