硬链接与软链接

引言:

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

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
下一篇 2016-10-20

相关推荐

  • 一切皆文件

    Linux Linux内一切皆文件;表现之一:硬件设备也通过文件表示 物理终端:/dev/console 虚拟终端: /dev/tty#[1,6] 串行终端:/dev/ttyS# 伪终端: /dev/pts/# 注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互,交互式程序有两类:GUI(图形化界面)和CLI(命令行界面)。 查看终端设备:…

    Linux干货 2017-04-01
  • 解决Redis 延迟故障

    前一段时间redis客户端在使用php connect 连接redis 的经常报一个redis server went away 等信息。 首先想到的想到的是reids超时设置的问题,timeout、tcp-keepalive、以及php的default_socket_timeout时间  127.0.0.1:6381> CONFI…

    Linux干货 2016-02-14
  • man 命令简单介绍

    man n command man手册页分为下面几个部分: 1 普通命令2 内核提供的系统调用3 库调用4 设备文件5 文件格式规范6 游戏7 杂项8 系统管理命令

    Linux干货 2018-03-03
  • 马哥教育网络班21期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;     fdisk /dev/sdb    n p 1 +10G w (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl…

    Linux干货 2016-08-22
  • linux基础学习第十一天(shell循环、软件包管理)

    2016-08-16 授课内容: shell脚本基础:循环,for,while,until(未讲完) 软件包管理(未讲完): 软件运行环境 软件包基础 Rpm包管理 循环执行 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 循环控制语句: break:【提结束循环,循环将不再执行】指前面的循环退出,退…

    Linux干货 2016-08-18
  • HAproxy实战

    HAproxy实验一 1、实验要求: (1) 动静分离discuzx,动静都要基于负载均衡实现; (2) 进一步测试在haproxy和后端主机之间添加varnish缓存(见实验二步骤); (3) 给出拓扑设计; (4) haproxy的设定要求: (a) 启动stats; (b) 自定义403、502和503的错误页; (c) 各组后端主机选择合适的调度方法…

    Linux干货 2016-11-15