Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75567
  • 博文数量: 22
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 134
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-27 22:31
个人简介

梦想是要有的,万一实现了呢!

文章分类

全部博文(22)

文章存档

2015年(22)

分类: 服务器与存储

2015-05-04 19:28:58

最近在学习鸟哥的那本书,看到硬链接那块,关于硬链接存储问题在上一篇已经说过了。
今天来讨论下为什么硬链接不能链接目录?

假设存在这样一个目录:    /home/test1/test2/test3/test4   
想要把他连接到  /home/dir1 目录下的  /home/dir1/dir2  
注意:这块无论 存不存在dir2 这个目录都会报上图中的错误
但是软连接则不同,新建软连接的前提是新建的那个软连接是之前不存在的,不然会出错,见图:

好,言归正传。

想要进行  ln /home/test1/test2/test3/test4 /home/dir1/dir2 这个操作;
假设硬链接可以链接目录的话,用反推的方式看看能不能退出矛盾!

/home/test1/test2/test3/test4
/home/test1/test2/test3/test4/.
/home/test1/test2/test3/test4/..

/home/dir1/dir2
/home/dir1/dir2/.
/home/dir1/dir2/..

当操作成功后:
/home/test1/test2/test3/test4    ==    /home/dir1/dir2         (1)
同时
/home/test1/test2/test3/test4/.   ==   /home/dir1/dir2/.       (2)

/home/test1/test2/test3/test4/..   ==  /home/dir1/dir2/..      (3)

然而 /home/test1/test2/test3/test4/..    <==>   /home/test1/test2/test3
      /home/dir1/dir2/..    <==>   /home/dir1                     (4)
所以就推出:
/
home/test1/test2/test3   ==   /home/dir1                            (5)

同样的道理
重复上述过程,会得出这样一个结论:
/home/test1  ==  /

这显然是不成立的,所以
硬链接不可以链接目录


关于这个问题,鸟哥是这么解释的:
“举例来说,如果你要将 /etc 使用硬链接创建一个 /etc_hd 的目录时,那么在 /etc_hd 下的所有文件名同时都与 /etc 下面的文件名要创建硬链接的,
而不是仅仅连接到 /etc 和 /etc_hd 而已。并且,将来如果需要在 /etc_hd 目录下创建新文件时,连带的, /etc 下面的数据又得要创建一次硬链接
因此造成环境相当大的复杂度,所以是不支持链接目录的。”

阅读(1994) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~