linux为什么不允许创建文件夹的硬链接

 

linux为什么不允许创建文件夹的硬链接

 

使用方面考虑,会产生递归黑洞,举例:

文件夹 a,b,在a下面创建b文件夹得硬链接c,在b下面创建a文件夹的硬链接d,

ls a ,会看到c,ls c,看到b下的文件夹d,再ls d又看到c,这样可以无限ls下去

软连接在访问时readlink有递归次数的限制,硬链接就是普通inode,所以没办法记录递归次数

代码实现角度

代码实现方面应该是可以做到的。首先pwd不是由文件系统拼接路径的,而是记录在一个全局变量中,所以cd 。。 的时候只是需要获得上一级目录inode的属性来检查权限,或者显示属性信息。路径只需要简单运算就可以得到。

每个路径都对应一个dentry,即使是相同的inode,如果是不同path,那么dentry是不同的,dentry在内存中的hashtable是通过父目录的dentry来hash,而不是父目录inode,

path_walk的过程中,如果父目录是软连接,则会readlink找到被连接的父目录inode,再用该inode来获取名字空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OMV(Open Media Vault)是一种基于Debian Linux的开源网络附加存储(NAS)操作系统。它旨在提供易于使用和管理的网络存储解决方案。 OMV不允许多重链接是因为多重链接可能导致文件系统数据的重叠和混乱。多重链接是指一个文件或文件可以在同一个文件系统中通过多个路径进行访问。虽然在某些情况下多重链接可以提供方便,但也会引入一些问题。 首先,多重链接可能导致数据的重复和混乱。如果一个文件或文件被多重链接到不同的路径下,对一个链接所做的修改可能会影响其他链接的内容。这可能导致数据的不一致性和错误。 其次,多重链接还可能影响文件系统的性能。当多个链接指向同一个文件时,文件系统需要跟踪多个链接和它们之间的关系。这将增加文件系统的负载和访问时间。 另外,多重链接也可能导致混乱和困惑。当一个文件或文件存在于多个路径时,用户可能难以追踪和管理文件的位置和访问。 出于以上原因,OMV选择不允许多重链接,以确保文件系统的稳定性和数据的一致性。用户可以通过其他方式组织和管理文件,如使用文件来组织相关文件,或使用符号链接来创建指向其他文件或文件的引用。这些方法可以满足大多数用户的需求,并在保持简洁和清晰的文件结构的同时提供方便和易用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值