从两个方面来阐述下linux为何不容许建立文件夹的硬连接

从两个方面来阐述下linux为何不容许建立文件夹的硬连接从两个方面来阐述下linux为何不容许建立文件夹的硬连接

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

文件夹 a,b,在a下面建立b文件夹得硬连接c,在b下面建立a文件夹的硬连接d,node

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

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

代码实现角度blog

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

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

path_walk的过程当中,若是父目录是软链接,则会readlink找到被链接的父目录inode,再用该inode来获取名字空间。get

原文来自:https://www.linuxprobe.com/csx-linux-wjjykj.htmlhash

相关文章
相关标签/搜索