共计 2513 个字符,预计需要花费 7 分钟才能阅读完成。
Linux系统有两种链接:
硬链接:ln 源文件 目标文件
软连接:ln –s 源文件 目标文件
硬链接是通过索引节点(Inode)来进行链接的
硬链接
硬链接(hard link)是通过索引节点来进行链接的。Linux(EXT2,EXT3,EXT4)文件系统中,保存在磁盘分区中的文件不管是什么类型的都会给它一个编号,那么这个编号就是索引节点(Inode)。
在Linux文件系统中,多个文件名可以指向同一个Inode节点是正常允许的,这种情况的文件就被称之为硬链接文件,硬链接的作用之一就是允许一个文件拥有多个有效的访问入口,如果创建了一个硬链接文件,我把源文件给删除了,但是数据还没丢,因为硬链接文件还存在,删除的只是文件名,工作中比较重要的文件可以做硬链接。
文件系统(ext2)的原理是,只要文件的索引节点(Inode)还有一个以上的硬链接,只删除其中一个硬链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其他的链接(即数据文件实体并未被删除),只有当文件的最后一个链接被删除后,此时如果有新数据要存储到硬盘上或者系统通过类似fsck做磁盘检查的时候。被删除文件的数据块及目录的链接才会被释放,空间新数据占用并覆盖,此时,数据再也无法找回了。也就是说,在Linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。
硬链接的小结
- 具有相同Inode节点号的多个文件是互为硬链接的文件;
- 删除硬连接文件或者删除源文件任意之一,文件实体并未删除;
- 只有删除了源文件以及所有对应的硬链接文件,文件实体才会被删除
- 当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,磁盘fsck检查的时候,删除的数据也会被系统回收。
- 硬链接文件就是文件的另一个入口(相当于超市的前门后门)
- 可以通过给文件设置硬链接来防止重要文件被误删。
- 通过执行命令”ln 源文件 硬链接文件“,即可完成创建硬链接。
- 硬链接文件接文件可以用rm删除
- 对于静态文件(没有进程调用的文件)来讲,当对应硬连接数为0,文件就被删除。
软链接
软连接(soft ink)也被称之为符号链接,相当于Windows的快捷方式,Linux里面软连接实际上就是一个特殊的文件,他的文件类型是“l”.
软连接的创建:
执行“ln –s 源文件 软链接文件”,即可创建软连接。
误区:创建软链接源文件是需要存在的,要创建的软连接文件时不可能存在的,要用ln命令创建。
软链接小结
- 软连接类似Windows的快捷方式;
- 软连接类似一个文本文件,里面存放的是原文件的路径,指向源文件实体;
- 删除源文件,软链接文件依然存在,但是无法访问指向的原文件路径内容了;
- 软连接失效的时候一般失败是白字红底闪烁提示;
- 指向“ln –s 源文件 链接文件”,即可完成创建软连接;
- 软连接和源文件是不同类型的文件,也是不同的文件,Inode号不同;
- 删除软链接文件可以用rm命令;
文件链接的小结
1.删除软连接文件对源文件及硬链接文件无影响;
2.删除源文件,对硬链接文件没有影响,但是会导致软连接文件失效,白字红底闪烁;
3.同时删除源文件file,硬链接文件file_hard_link,整个文件会被真正的删除;
4.很多硬件设备中的快照功能,就是利用了硬链接的原理;
5.源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件的多个入口。
6.源文件和软连接文件索引节点号不同,是不同的文件,软连接相当于源文件的快捷方式,含有源文件的位置指向。
目录链接的小结
- 对于目录,不可以创建硬链接,但可以创建软链接;
- 对于目录的软连接是生产场景运维中常用的技巧;
- 目录的硬链接不能跨越文件系统;
- 每个目录下面都有一个硬链接“.”和“..”
描述Linux下软连接和硬链接的区别(面试题)。
解答:
在Linux系统中,链接分两种:一种被成为硬链接(Hard Link),另一种被称为符号链接或软连接(soft Link).
- 默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软连接;
- 硬链接文件与源文件的Inode节点号相同,而软连接文件的inode节点号与源文件不同;
- Ln命令不能对目录创建硬链接,但可以创建软连接,对目录的软连接会经常被用到;
- 删除链接文件,对源文件及软链接文件无任何影响;
- 删除文件的硬链接文件,对源文件及软链接文件无任何影响;
- 删除链接文件的源文件,对硬链接文件无影响,会导致其他软连接失效;
- 同时删除源文件及其硬链接文件,整个文件才会被真正删除;
- 很多硬件设备中的快照功能,使用的就类似硬链接的原理;
- 软连接可以跨文件系统,硬链接不可以跨文件系统;
企业面试题答题思路
- 介绍软硬连接的概念;
- 对于文件的软硬连接区别;
- 对于目录的软硬链接区别;
3.文件删除原理
I_count=引用计数(一个程度读取为1,两个为2)
I_link=硬连接数
静态文件删除原理(I_link=0):硬连接数为0,静态文件就被删除
动态文件删除原理(i_count):引用计数为0的时候,动态文件就被删除了。
4.案例
(1)安装httpd web服务
|
|
编辑配置文件,让日志记录到/app/log下面。
(2)创建一个小的文件系统,用于存放上述日志。
|
|
(3)重启httpd服务,确保日志记录到了上述文件系统挂载的/app/log下面
|
|
(4)写个循环脚本访问httpd,使得httpd日志充满/app/log整个空间。
|
|