VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云最新优惠促销活动
jtti最新优惠促销活动

为什么linux硬链接不能链接目录(为什么硬链接不能链接目录)

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

为什么linux硬链接不能链接目录(为什么硬链接不能链接目录)

本教程运行环境:linux7.3系统,Dell G3电脑。

LINUX的硬链接不能链接到目录,因为引入硬链接到目录可能会导致目录循环。目录遍历时,系统会陷入死循环,导致无法定位访问目录。

在linux系统中,每个文件(目录也是文件)对应一个inode结构,其中inode数据结构包含文件类型(目录、公共文件、符号连接文件等)的信息。),这意味着操作系统在遍历目录时可以判断符号连接。既然可以判断符号连接,当然可以采取一些措施防止其进入过度循环。连续遇到八个符号连接后系统停止遍历,这也是目录的符号连接不会进入的原因。但是对于硬连接,由于操作系统采用的数据结构和算法的限制,目前无法防止这种死循环。

linux硬连接的本质

在讨论问题之前,先说说硬连接的本质。

硬连接实际上是目录的inode所指向的块的内容。目录块中的每条记录都是硬连接。目录本身是Linux中的一种文件(目录文件,符号D),“目录文件”的内容是硬链接。

例如(注意图中目录连接的变化):

1.png

tmp目录连接号变更前后的图如下(红线表示连接号来源):

2.png

从上面的例子可以发现,当创建一个目录时,硬连接的数量是2,其中一个来自父目录,另一个来自自己的“.”。如果创建目录的另一个子目录,硬连接的数量将是+1到3,因为多了一个“..”子目录中的连接。

这里可能有人会问,不是说硬连接不能用于目录吗?上面的演示呢?

这里需要明确一个概念“硬连接不能用于目录”,是指目录的硬连接不能由用户自定义,只能由操作系统维护。实际上,目录和硬连接是不可分的,是相互集成的。“硬连接”本身实际上是目录维护子文件和子目录。

自定义硬连接噩梦:循环

说完硬连接的本质,我们可以回到今天的话题:为什么不允许用户自定义目录的硬连接?

我们知道Linux的目录结构是以“/directory”为根节点的树。如果允许自定义硬连接,很可能会破坏这个结构,甚至形成循环。例如,如果以下命令可以成功执行:

3.png

4.png

一旦形成循环,对于需要遍历目录树的命令来说是致命的(比如du命令从上到下遍历,pwd命令从下到上遍历)。因此,为了避免目录树结构的破坏,linux不允许用户自定义硬连接到目录。之所以说软连接没有这个限制,是因为软连接文件有一个特殊的文件类型,可以被系统识别,而“硬连接文件”和系统正常文件没有区别,无法判断。

推荐:《linux视频教程》以上是Linux硬链接为什么链接不到目录的详细内容。请多关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:为什么linux硬链接不能链接目录(为什么硬链接不能链接目录) https://zhujicankao.com/86950.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 为什么linux硬链接不能链接目录(为什么硬链接不能链接目录)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!