Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63631
  • 博文数量: 11
  • 博客积分: 639
  • 博客等级: 中士
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-30 15:11
文章分类

全部博文(11)

文章存档

2011年(10)

2010年(1)

分类: LINUX

2011-08-25 20:44:08

对一个文件做硬连接,软连接,复制,查看三者的不同之处:
创建一个软连接
[root@localhost tmp]# ln -s tmp soft_tmp
创建一个硬连接:
[root@localhost tmp]# ln tmp hard_tmp
复制文件:
[root@localhost tmp]# cp tmp cp_tmp
查看三者的inod值
[root@localhost tmp]# ls -li
total 12
260855 -rwxr-xr--. 2 root root 2 Aug 22 01:51 tmp
260855 -rwxr-xr--. 2 root root 2 Aug 22 01:51 hard_tmp
287381 lrwxrwxrwx. 1 root root 3 Aug 22 01:48 soft_tmp -> tmp
287383 -rwxr-xr--. 1 root root 2 Aug 22 02:02 cp_tmp

可以发现硬连接的inod值与原文件一样,软连接与复制出来的文件inod值与源文件不同。
如果删除源文件则软连接会失效,硬连接依旧存在。

查看网上相关帖子,详细总结备份下:

我的总结:
三者的本质区别
本质区别在与inod的不同,硬连接是与物理文件直接相连的,是访问这个文件的另外一个入口,它与源文件没有任何差别,不使用硬盘容量,复制则是开辟一个新的硬盘空间并在里面填充了一样的内容,它的inod自然也就不同了,而软连接只是一个保存了源文件路径的文件,原文件的不存在了,这个路径也就错了,软连接也就失效了。

什么情况下使用哪个
可以使用硬连接对一个巨大的文件进行备份,软连接可以跨文件系统,可以对目录做软连接,硬连接则不行

自己的总结不够好,这里把别人写的好的总结也放进来。

1. 软连接可以 跨文件系统 ,硬连接不可以 。
2. 硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是源文件还是 连接的文件 。软连接不直接使用i节点号,而 是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但是 删除 源文件,连接文件 就会找不到要指向的文件 。软连接有自己的inode,并在磁盘上有一小片空间存放路径名.
3. 软连接可以对一个不存在的文件名进行连接 。
4. 软连接可以对目录进行连接。
5. 硬连接可以认为不是一个文件,它只是实际文件的一个别名,它的作用是防止真实文件被误操作, 给一个文件建立硬连接后,他们互为别名,删除其中任意一个,只会删除该别名,实际文件并不会 被删除。由于只是别名没有任何其他信息,所以并不占用原始文件大小的磁盘空间


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