硬链接和软链接的区别

硬链接和软链接的区别

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

相关推荐

  • 优云实践:巧用Salt,实现CMDB配置自动发现

    随着互联网+新形势的发展,越来越多的企业步入双态(稳敏双态)IT时代,信息化环境越来越复杂,既有IOE三层架构,也有VCE、Openstack等云虚拟化架构和互联网化的分布式大数据架构。所以,企业急需建立一套合适的配置管理库(CMDB),像人类“大脑”一样统一存储从基础架构到业务应用各层面的配置信息,以便协调“身体”(运维系统)各部分完成复杂的运维工作。 C…

    系统运维 2016-07-26
  • 正则表达式以及Linux文本搜索工具grep

    一正则表达式 regual Expression  简称REGEXP 定义:由一类特殊字符以及文本字所编写的模式,其中有些字符不表示其字面意义,而用于统配和统配功能 分类:     基本正则表达式:BRE 贪婪模式(尽可能长地去匹配符合模式的内容     扩展表达式:E…

    Linux干货 2016-08-07
  • lvs–各类型的原理及实现—(原理篇)

    前言:    LVS即是linux虚拟服务器,是一个虚拟的服务器集群系统,目的是使用集群技术和linux操作系统实现一个高性能、高可用的服务器。采用IP负载均衡技术和基于内容请求分发技术,将请求负载均衡地转移到不同的服务器上执行,从而将一组服务器构成一个高性能、高可用的虚拟服务器。此篇的内容只包含两种较为常用的LVS技术,分别是LVS-N…

    Linux干货 2016-10-27
  • 编译内核——制作最适合自己系统的内核

    编译内核: ·程序包的编译安装:         ./configure ,make ,make install ·前提:开发环境(开发工具、开发库),头文件:/usr/include ·开源:源代码–>可执行格式    &nbsp…

    Linux干货 2016-09-11
  • HA高可用集群学习笔记

    前言   什么是HA?HA做什么用的?   HA(High Available)是高可用集群,是保证业务不中断性的有效解决方案;通常HA集群部署在多个节点,正在提供服务的节点成为活动节点,没有提供服务的是非活动节点;当活动节点发生故障,非活动节点会转为活动节点,向外提供服务,以保证业务的连续性;这就是HA。 一、HA(High Avail…

    Linux干货 2015-06-30
  • 第四周博客分享

                    时间匆匆,转眼来马哥已经快一个月了,这一个月对我来说是收获满满,每天都在学到新的东西。       &nbs…

    2017-08-06