硬链接与软链接

引言:

链接一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。

Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

Inode译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。

Block:存放档案内容数据的地方。

 

1.命令:

硬:ln 源文件 链接名

软:ln -s 源文件 链接名

 

2.原理:

硬链接:

透过A或者B的inode指定的block找到两个不同的档名,不管使用哪个都可以指定读取最终数据。

每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。

注:rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

硬链接.png


软链接:

A的inode读取到俩接档的内容档名,根据档名链接到正确的目录取得目标档inode,最后访问正确的数据,如果目标档案删除,就无法透过链接档读取数据。

 软链接.png

3.使用限制:

   硬链接:Hard Link(实体链接)

a.创建硬链接会增加额外的记录项以引用文件

b.对应于同一文件系统系统上一个物理文件

c.每个目录引用相同的inode号

d.创建时连接数递增

e.不能跨Filesystem

f.不能link目录

注:删除文件时:

rm命令递减计数的链接

文件要存在,至少有一个链接数

当链接数为零时,该文件被删除

软链接:Symbolic Link(符号链接,快捷方式)

a.一个符号链接的内容是它引用文件的名称

b.可以对目录进行

c.可以跨分区

d.指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数

 

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

(0)
GaoningGaoning
上一篇 2016-10-20 21:21
下一篇 2016-10-20 21:41

相关推荐

  • LVM的创建与管理

    一、基本概念     1、LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。     2、why:通常在安装Linux系统的时候对磁盘进行一盘的分区,一旦日后分区或整个磁盘的空间…

    Linux干货 2016-06-22
  • 关于IO的同步,异步,阻塞,非阻塞

    上次写了一篇文章:Unix IO 模型学习。恰巧在这次周会的时候,@fp1203 (goldendoc成员之一) 正好在讲解poll和epoll的底层实现。中途正好讨论了网络IO的同步、异步、阻塞、非阻塞的概念,当时讲下来,大家的理解各不相同,各执己见。搜索了网络上的一些文章,观点也各不相同,甚至连wiki也将异步和非阻塞当成一个概念在解释。  &…

    Linux干货 2015-04-02
  • shell编程、程序包管理及习题

    shell编程、程序包管理及习题 一、编程语句 1、while 循环 while CONDITION; do     循环体 done CONDITION :循环控制条件;进入循环之前,先做一次判 断;每一次循环之后会再次做判断;条件为“true” ,则执行 一次循环;直到条件测试状态为“false” 终止循环 因此:…

    Linux干货 2016-08-18
  • 重定向和管道

    1.Linux给程序提供三种I/O设备 标准输入-0    默认接受来自键盘的输入 标准输出-1    默认输出到终端窗口 标准错误-2    默认输出到终端窗口 在dev下有个fd设备,打开的文件都有一个fd:file dexcriptor 文件描述符 I/O重定向:…

    2017-07-20
  • Python第一周小结

    经历了两个星期Linux运维基础的铺垫,这周我们正式开始了python的学习。经过第一周的各种挣扎以及反复训练,终于有所收获了一点东西。现在将第一周中学到的一个非常重要的算法技巧总结如下: 即:折半思想 例:给定一个不超过五位数的正整数,判断该数有几位数 Code1:                                              …

    Linux干货 2018-03-26
  • ipvsadm用法

    ipvsadm命令的用法:      1.用于管理Lvs集群服务      2.用于进行RS的增删改      3.查看配置  lvs服务器架设步骤:  1.判断内核是否支持ipvs(看到CONFIG_NETFIFLER_XT_MATCH_IPVS=…

    Linux干货 2017-01-10