问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux中文件与目录对应的硬链接与软链接方式总结

发布网友 发布时间:2022-04-21 01:56

我来回答

1个回答

热心网友 时间:2023-11-04 08:29

硬链接

新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用。

硬链接特征:

1、拥有相同的 i节点 和相同的存储block快,可以看做是同一个文件

2、可通过i节点识别,i节点号相同

3、不能跨分区

4、不能针对目录使用

5、删除文件,硬链接正常使用

软链接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

软链接特征:

1、类似windows快捷方式

2、软链接拥有自己的i节点和block快,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据

3、lrwxrwxrwx l软链接,软链接文件权限都为rwxrwxrwx,但具体看原文件的权限

4、修改任意文件,另一个都改变

5、删除原文件,软链接不能使用

6、创建软链接一定要写绝对路径

注意软链接的文件权限为777 但是最终权限有源文件决定 l表示软链接文件。

一旦源文件删除,软链接将不能使用。(这是和硬链接的主要区别)

注:创建软链接时,源文件要始终使用绝对路径,否则,若创建的软链接和源文件不在同一个目录时,会找不到源文件。(硬链接不会有这种情况)

*少,更灵活,推荐使用。

补充:

linux系统中的硬连接有两个*:不能跨越文件系统和不允许普通用户对目录作硬连接。至于第一个*,很好理解,而第二个就不那么好理解 了。 对任何一个目录用ls -l 命令都可以看到其连接数至少是2,这也说明了系统中是存在硬连接的,而且命令ln -d 也可以让超级用户对目录作硬连接,这些都说明了系统*对目录进行硬连接只是一个硬性规定,并不是逻辑上不允许或技术上的不可行。那么操作系统为什么要进 行*呢?答案可能有两个。

先来说第一个,如果引入了对目录的硬连接就有可能在目录中引入循环,那么在目录遍历的时候系统就会陷入无限循环当中。也许您会说,符号连接不也可以引入循 环吗,那么为什么不*目录的符号连接呢?原因就在于在linux系统中,每个文件(目录也是文件)都对应着一个inode结构,其中inode数据结构 中包含了文件类型(目录,普通文件,符号连接文件等等)的信息,也就是说操作系统在遍历目录时可以判断出符号连接,既然可以判断出符号连接当然就可以采取 一些措施来防范进入过大的循环了,系统在连续遇到8个符号连接后就停止遍历,这就是为什么对目录符号连接不会进入死循环的原因了。但是对于硬连接,由于操 作系统中采用的数据结构和算法*,目前是不能防范这种死循环的。

在说明第二个原因之前,先来看看文件的dentry结构在系统空间中长什么样子和它们是怎么存放在系统空间的。dentry结构主要包含了文件名,文件的inode号,指向父目录dentry结构的指针和其他一些与本次讨论无关的指针,这里关键是那个指向父目录的指针;系统中所有的dentry结构都 是按杂凑值存放在杂凑表中的,这里的杂凑算法很重要,它是取文件名和文件的父目录dentry结构的地址一起杂凑运算出杂凑值的。现在假设有两个目录 /a和/b,其中/b是我们通过ln -d命令建立起来的对/a的硬连接。这个时候内核空间中就会存在一个/a的dentry结构和一个/b的dentry结构,由上面的知识可知,/a和/b 目录下面的每一个文件或目录都各自有对应的dentry结构(因为虽然/a目录下面的文件名没有改变,但是因为dentry结构有指向父目录dentry 的指针和计算杂凑值时考虑了父目录dentry结构的地址,这个时候dentry结构就分身乏术了),而且这种继承还会影响到所有子目录下面的文件,这样 下来就会浪费很多系统空间了,特别是如果被硬连接的目录中存在大量文件和子目录的时候就更加明显了。这也许是第二个原因。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... linux系统如何挂载硬盘并拷贝到某个目录下? Linux系统中如何克隆系统 如何操作linux电脑的系统,由旧硬盘直接全部复制至新硬盘? linux系统磁盘复制错误,我该怎么办? LINUX系统如何硬盘对拷! linux系统如何挂载硬盘并拷贝到某个目录下? 如何对linux系统的机器进行硬盘克隆(备份) 要求把所有东西都克隆出来 换硬盘,linux系统怎么迁移到新硬盘比较好 我如何对linux操作系统的机器进行全硬盘的拷贝呢? linux 系统的硬盘怎么克隆? linux怎么克隆硬盘 如何将linux从一个硬盘复制到另一个硬盘 linux系统下的硬盘复制方法 Word2007如何合并单元格时只合并同行的单元格 茄子种植时间, 茄子对栽培季节有何要求? 茄子是不是一年四季都可以种? 茄子什么季节播种?怎么种?一棵茄子能长出多少果实? 茄子什么时候种 茄子什么时候播种,茄子种植时间和方法 linux备份恢复备份的linux恢复 如何在WINDOWS下复制LINUX硬盘(带系统) 如何用linux命令从U盘复制文件到硬盘? linux系统如何做硬盘对拷 404 Not Found 有知道怎样删除掉支付宝上多余的卡号吗? 怎么删除支付宝这个对方人员的对方人名和哪个银行银行卡号 支付宝内绑定的多余帐号咋删除? 怎么解除支付宝关联的帐号 支付宝绑定的银行卡号怎么更改 高分求婚礼上放的歌曲 有什么劲爆的歌曲适合作婚礼开场曲 结婚现场的歌曲有那些 婚礼仪式前轻快甜蜜的歌曲 我要制作婚礼盘,大家给推荐几首歌曲呀!!! 求几首能说得上歌名的 超级劲爆的 纯音乐 或者英文歌 适合婚礼开场的 要超级劲爆的哦 适合结婚用的英语歌曲,婚礼背景音乐??? 有哪些劲爆的流行歌曲? 有哪些劲爆的歌曲