为什么在Unix中创建目录和文件时链接不同

时间:2017-05-06 05:25:20

标签: unix

当我创建目录时,键入ls -l。当我创建文件并通过ls -l命令检查长列表时它将显示2个链接然后它只显示1个链接。谁能告诉我背后的原因...... Long listing of Home directory

在这里你可以看到文件(e.txt)有1个链接,而目录(amit)有2个链接....

2 个答案:

答案 0 :(得分:0)

我总是理解额外的链接是由于"。"创建目录时自动创建的条目。这实际上是目录的硬链接。

答案 1 :(得分:0)

我不确定,但我认为这是Maurice Bach的书中的作业问题。在旧版本的Unix中,没有mkdir(2)系统调用。您必须mknod()(一个链接),然后再添加2个链接:一个来自“。”到新节点(第二个链接),然后将“..”链接到父节点(更改父节点的链接数)。因此,每个初始目录有2个链接。我不能确定完整的书(“UNIX操作系统的设计”?),但这就是为什么类Unix文件系统上的目录至少有2个链接。这也是他们添加mkdir()系统调用的原因;早期的3步骤过程繁琐且容易出错。