对目录建立应链接的能力,操作系统内部维护了,但没有暴露出来,因为容易造成环路路径问题。假设一条路径是/d1/d2/d3/hard-link,对d2创建硬链接hard-link,这会导致用户构建了一个环路路径的问题,如果输入指令find /d1/d2/ -name test.c,在d2目录里找test.c文件,指定在d2目录去找,假设递归式的找,他找到了d3里面的hard-link又把它倒到d2,这个时候他就出现了环路问题,导致出不来了,问题就解决不了了。
有人说dir目录和里面的.不是一个环状的结构吗?是的,但是他是由操作系统去维护的,并且他的路径不深,操作系统是能识别出来.是自己的,比如判断文件名的方式,遍历到.的时候对他做特殊处理就行了,但如果让用户允许对目录创建硬链接,用户建立了各种奇奇怪怪的文件名,操作系统很难判断他是不是有环路问题,所以不允许用户对目录建立硬链接。