主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
本教程运行环境:linux7.3系统,Dell G3电脑。
LINUX的硬链接不能链接到目录,因为引入硬链接到目录可能会导致目录循环。目录遍历时,系统会陷入死循环,导致无法定位访问目录。
在linux系统中,每个文件(目录也是文件)对应一个inode结构,其中inode数据结构包含文件类型(目录、公共文件、符号连接文件等)的信息。),这意味着操作系统在遍历目录时可以判断符号连接。既然可以判断符号连接,当然可以采取一些措施防止其进入过度循环。连续遇到八个符号连接后系统停止遍历,这也是目录的符号连接不会进入的原因。但是对于硬连接,由于操作系统采用的数据结构和算法的限制,目前无法防止这种死循环。
linux硬连接的本质
在讨论问题之前,先说说硬连接的本质。
硬连接实际上是目录的inode所指向的块的内容。目录块中的每条记录都是硬连接。目录本身是Linux中的一种文件(目录文件,符号D),“目录文件”的内容是硬链接。
例如(注意图中目录连接的变化):
tmp目录连接号变更前后的图如下(红线表示连接号来源):
从上面的例子可以发现,当创建一个目录时,硬连接的数量是2,其中一个来自父目录,另一个来自自己的“.”。如果创建目录的另一个子目录,硬连接的数量将是+1到3,因为多了一个“..”子目录中的连接。
这里可能有人会问,不是说硬连接不能用于目录吗?上面的演示呢?
这里需要明确一个概念“硬连接不能用于目录”,是指目录的硬连接不能由用户自定义,只能由操作系统维护。实际上,目录和硬连接是不可分的,是相互集成的。“硬连接”本身实际上是目录维护子文件和子目录。
自定义硬连接噩梦:循环
说完硬连接的本质,我们可以回到今天的话题:为什么不允许用户自定义目录的硬连接?
我们知道Linux的目录结构是以“/directory”为根节点的树。如果允许自定义硬连接,很可能会破坏这个结构,甚至形成循环。例如,如果以下命令可以成功执行:
一旦形成循环,对于需要遍历目录树的命令来说是致命的(比如du命令从上到下遍历,pwd命令从下到上遍历)。因此,为了避免目录树结构的破坏,linux不允许用户自定义硬连接到目录。之所以说软连接没有这个限制,是因为软连接文件有一个特殊的文件类型,可以被系统识别,而“硬连接文件”和系统正常文件没有区别,无法判断。
推荐:《linux视频教程》以上是Linux硬链接为什么链接不到目录的详细内容。请多关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
- 在Linux上操作vi编辑器(Linux上的vi编辑器命令)
- Mondoze:住宅IP/原生IP/IDC IP,VPS低至$8.33/马来西亚服务器/AS152742/11.11促销
- torchbyte 罗马尼亚 VPS 起价为 20 美元/年,AMD Ryzen9+ NVMe 硬盘,免费 DDoS 防护
- zlidc(智联IDC):韩国原生IP云服务器,35.9美元/季度,4核/4G内存/50G SSD/300M优质网络@2.5T月流量
- 椰草云双11活动:香港云服务器81元/年,香港实体服务器199元/月(香港云服务商)
本文由主机参考刊发,转载请注明:为什么linux硬链接不能链接目录(为什么硬链接不能链接目录) https://zhujicankao.com/86950.html
评论前必须登录!
注册