栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux 之 软链接与硬链接

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux 之 软链接与硬链接

本篇博客将在 Linux 基础上,对文件的 软链接 与 硬链接 方式进行简单介绍!

1、文件系统

文件系统:磁盘分区上的文件存储管理模块。

1.1 磁盘分区与 inode
磁盘分区 不仅包括存信息的位置,还有专门的分区 inode,其用于保存所存各种文件的信息,且磁盘分区上有专门的模块叫inode bitmap 。
(关于磁盘分区的知识,可点击 博客 进行查看)

inode bitmap:保存当前磁盘分区上的所有空分区

inode 节点:文件的元信息节点(名称,时间,权限,数据块地址等)

可用 ls -li 显示文件的 inode 节点号,如图

1.2 文件存储

文件的存储:在超级块中找到对应 inode 位图(inode bitmap)以及 data 位图区域地址,在对应的位图找到空闲的inode 节点号和空闲数据块号,进而存储文件数据到数据块中,并将文件的元信息保存到 inode 节点中,方便后续进行其他处理操作。(在所在目录文件中加入目录项信息 – 当前文件名和 inode 节点号)

1.3 文件读取

文件数据的读取:从所在目录文件中找到文件的目录项信息(通过文件名找到inode 节点号),在文件系统的 inode 区域中通过 inode 节点号找到 inode 节点,再从节点中获取到数据块号,然后就可从对应数据块中取出数据。

2、链接文件

2.1 概念

软链接文件 与 硬链接文件:
这两种文件都是针对自身的源文件创建的,通过创建的软链接或硬链接文件访问文件里的数据。一个源文件可有软链接与硬链接那个访问文件!

2.2 命令操作

2.2.1 硬链接文件
创建代码为

ln test.c test.hard

其中,test.c 为源文件, test.hard 为硬链接文件,.hard 为硬链接文件格式。

硬链接文件创建后,文件的链接数+1,硬链接文件的inode节点号与源文件的inode节点号相同;
硬链接文件实际上只是源文件的一个目录项信息,与源文件共用同一个inode节点。

如上图, main.hard 即为 main.c 源文件的 硬链接文件。而硬链接文件的创建时间、内存大小、内容等 与 源文件一致!

2.2.2 软链接文件
创建代码为

ln -s test.c test.soft 

同理, test.c 为源文件, test.soft 为软链接文件,.soft 为软链接文件格式。

如图, main.soft 即为 main.c 源文件的 软链接文件

运行ls -l 后,文件权限以 l 开头的即为软链接文件,如图

(注:对于硬链接文件,ls -l 无法像软链接文件那样显示!)

上图中,main.soft 文件权限为 lrwxrwxrwx ,l 即 link,表示符号链接文件或软链接文件;且 main.soft 文件会指向源文件 main.c,而该文件的字节数变为所指文件名称的字符数,即因 main.c 名称的字符数为 6 ,所以 main.soft 的大小为 6 字节。

2.2.3 总结

a、当单独 删除 或 重命名 源文件,硬链接文件内容不会有什么变化,但链接数会减1(原链接数为2),依然可以访问文件;但软链接文件会显示找不到源文件(运行ls -l后,软链接文件的指向会在闪红),即软链接失败!!!!如图
删除源文件:

重命名文件:

b、当重新建立源文件后,硬链接与软链接不会报错,且硬链接内容不会消失,而软链接只认文件路径,即软连接文件也不会报错,但硬软链接数也不会有所变化!!!!!
只有当链接数为0,即源文件删除后,硬链接文件也被删除,该文件才会被真正删除(前提是该源文件有硬链接文件!!!)
如图

c、软链接文件可以跨分区建立,但硬链接文件不可以!!!!!!!!!!
软链接文件可以针对目录创建,但硬链接不可以!!!!!!!!!!

d、软链接文件可以类比于windows系统的快捷方式!!!!!!
硬链接文件更多用于数据的备份,防止误删!!!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号