免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: hdqqq

不能理解软链接。和硬链接到底什么区别 [复制链接]

论坛徽章:
0
发表于 2005-06-11 14:34 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

原帖由 "dlcat" 发表:
就这样叫解释清楚,除了netman老大其他没有对的,我晕.

每个文件都对应一个i-node指向该文件的block,LINUX通过i-node找到相应的文件.
给文件加一个硬链接就是给这个文件加了一个i-node.这样这个文件就有两个i-node..........


硬连接是不会建立Inode的,他只是在文件原来的Inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个Inode,当时Inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息,譬如:/usr/bin/ls,然后一旦你在/usr/bin下把ls删除掉,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查link count的数值,如果他大于1,那么Inode不会被回收。因此文件的内容没有不会被删除。

网老大的说法是正确的,不过太过简单。


我认为如果你真正想要了解这些东西,最好对file system有一个清楚的了解,只有你真正了解文件系统的具体的结构,这些问题就会迎刃而解,根本就不会再什么理解上的困难。造成这个困惑的主要原因还是对文件系统的概念及结构认识太过模糊。

论坛徽章:
0
发表于 2005-06-29 10:56 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

不知这个解释会否有帮助

主要区别如下:
1.硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。
2.硬链接只能用于文件,不能用于目录;软链接可以为目录建链接。
3.硬链接不能跨文件系统操作。

论坛徽章:
0
发表于 2005-06-29 14:04 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

[quote]原帖由 "sinozhou"]http://linuxgazette.net/105/pitcher.html[/quote 发表:


建议大家都去看看由sinozhou提供的页面。



我的理解如下,请指正



unix里文件由两部分组成,data part为数据部分,filename part为文件名部分。data part有一个概念为inode,inode指向文件在磁盘的存储位置block,以及文件的权限等信息。filename part里有文件名和相关的inode。

可以有多个文件名都指向同一inode,于是这些文件名被称为hard link。

另外,还有一种特殊类型的文件,它的data part为一path,该path指向另一个文件。操作系统把对该特殊文

件的操作如打开、读、写等都redirect到该特殊文件所指向的那个文件。于是该特殊文件被称为symbolic link

论坛徽章:
0
发表于 2005-06-29 15:40 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

[quote]原帖由 "月眉儿"]我用ln -f怎么不能删除软连接呢?[/quote 发表:


-f的意思是在建立连接时,如果目标文件存在,就强制性的覆盖它。也可以是说先删除已存的文件,然后建立新文件。

论坛徽章:
0
发表于 2005-06-29 16:59 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

[quote]原帖由 "sunsroad" 发表:


硬连接是不会建立Inode的,他只是在文件原来的Inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个Inode,当时Inode的结构跟其他的不一样,他只是一个指明源文件

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-07-15 11:57 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

我想问一下,如果一个硬链接的源文件内容发生变动.(文件名不变),那么这个硬链接指向的文件内容是否会同步变动?还是生成一个原来文件的拷贝?

论坛徽章:
0
发表于 2005-07-15 13:40 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

[quote]原帖由 "tonera"]我想问一下,如果一个硬链接的源文件内容发生变动.(文件名不变),那么这个硬链接指向的文件内容是否会同步变动?还是生成一个原来文件的拷贝?[/quote 发表:


前面实际上已经讲到,无所谓硬链接,只是相对软链接而言.
所谓硬链接的各个文件,实际是同一个文件,所以修改一个,当然都变.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2005-07-18 11:57 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

原帖由 "doni" 发表:


前面实际上已经讲到,无所谓硬链接,只是相对软链接而言.
所谓硬链接的各个文件,实际是同一个文件,所以修改一个,当然都变.


我实际应用的时候不是这样.

修改源文件,硬链接文件内容并不改变.

论坛徽章:
0
发表于 2005-07-18 17:01 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

精彩`~~~偶有收获~~~就是INODE的概念~~~
基础~~~那个重要滴~~~~
顺便顶一下让更多的人看到这种文章~~~
不仅是技术上的进步呀~~~       
关注一下楼上应用中的实际不一样`~~

论坛徽章:
0
发表于 2005-09-13 23:48 |显示全部楼层

不能理解软链接。和硬链接到底什么区别

http://zmsazjs.mysmth.net
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP