硬链接和软链接的区别

硬链接和软链接的区别

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)
上一篇 2017-07-23 15:05
下一篇 2017-07-23 16:44

相关推荐

  • 马哥教育网络班21期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 # cp -a /etc/skel /home/tuser1 # chmod -R g-rwx,o-rwx /home/tuser1/ 2、编辑…

    Linux干货 2016-07-16
  • 10yum源的配置

    yum仓库使用起来特别方便,然而使用之前当然是要配置的啦。下面就介绍一下怎么从0 配置一个yum仓库。 首先要创建yum仓库,当然不能使只给一台服务器用,那要给多个服务器用的话,就需要网络服务。yum仓库支持的网络服务有两种,FTP和HTTP。用yum主要用到的是数据传输,因此FTP更适合创建yum仓库,下面就以FTP为例,说明一下yum仓库的配置。 第一步…

    Linux干货 2016-11-04
  • 第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或处理连接:接收请求或拒绝请求;     2)接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程;接收请求的方式通常是并发访问响应模型;     3)处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息,解析后的报文…

    2017-03-27
  • 关于大型网站技术演进的思考(八):存储的瓶颈(8)

    原文出处: 夏天的森林  在开始本篇主要内容前,我们一起看看下面的几张截图,首先是第一张图,如下图所示: 这是一家电商网站的首页,当我们第一次打开这个首页,网站会弹出一个强制性的对话框,让用户选择货物配送的地址,如果是淘宝和京东的话,那么这个选择配货地址的选项是在商品里,如下图是淘宝的选择配送地点: 下图是京东选择配货地点: 那么图一跟京…

    2015-03-11
  • 第九周作业

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; # awk -F: ‘{if($7!=”/sbin/nologin”) {printf “Logined user %s\n”…

    Linux干货 2017-03-01
  • shell脚本的if语句

                                  第一篇  shell脚本中的if语句 一、shell脚本的语句控制        □前面提到了过程式…

    Linux干货 2016-08-19