关于ln命令中的硬连接和软连接的区别、用处

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

关于ln命令中的硬连接和软连接的区别、用处

#1

帖子 jerry_zhou » 2008-08-01 16:28

如题, 我在网上查了很多资料,但是我看的越来越不明白, 不知道哪位能帮我总结下,用简洁易懂的话来总结。 谢谢了
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#2

帖子 BigSnake.NET » 2008-08-01 16:28

硬链接连的是inode
软链接连的是路径
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#3

帖子 jerry_zhou » 2008-08-01 16:30

BigSnake.NET
inode是啥? 我不明白。 能请你说明白点吗。
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

#4

帖子 冲浪板 » 2008-08-01 16:34

这些个应该是作者来写。

我就只知道被硬连接后,若所有连接均被删除,这个目标文件才能被删除。
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#5

帖子 jerry_zhou » 2008-08-01 16:40

冲浪板 写了:这些个应该是作者来写。

我就只知道被硬连接后,若所有连接均被删除,这个目标文件才能被删除。

这个我才做了个测试如下:
ln test ii
rm test
是可以删除test的

给我的感觉是硬连接就像cp命令。
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

#6

帖子 adagio » 2008-08-01 16:51

硬连接--->备份此文件(但无需额外空间);
软链接--->windows快捷方式;

这样够“简洁易懂”吧 8)
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#7

帖子 jerry_zhou » 2008-08-01 16:55

adagio
硬连接--->备份此文件(但无需额外空间)


这个后面的 ---但无需额外空间 我不是很明白, 你能不能说明白点。
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

#8

帖子 adagio » 2008-08-01 17:06

这个……,涉及文件系统原理,几句话搞不掂的
建议你去看《鸟哥的私房菜》,通俗易懂,入门必备,连接问题我就是看这个才明白的
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#9

帖子 delectate » 2008-08-01 17:43

jerry_zhou 写了:adagio
硬连接--->备份此文件(但无需额外空间)


这个后面的 ---但无需额外空间 我不是很明白, 你能不能说明白点。
个人理解:
http://www.chinaitpower.com/2005Septemb ... 04588.html

软链接就是一个快捷方式

对这个软链接的任何读写都会转到源文件去

源文件无效,那么此软链接无效

硬链接是一个与软链接不同的链接(貌似是废话)

如果源文件存在,那么对此硬链接操作是对源文件操作

而源文件不存在,那么此硬链接保留了所有源文件内容

(ps:硬链接有个疑问哦?

源文件存在,源文件和链接文件一起更改?而链接文件本身是否是源文件的备份呢?

如果不存在呢?链接文件就是一个大大的备份了?)
上次由 delectate 在 2008-08-01 17:53,总共编辑 2 次。
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#10

帖子 jerry_zhou » 2008-08-01 17:46

后代 写了:
jerry_zhou 写了:adagio
硬连接--->备份此文件(但无需额外空间)


这个后面的 ---但无需额外空间 我不是很明白, 你能不能说明白点。
个人理解:

就像给某文件上了一个锁链(硬链接)


不把锁打开,就无法获得自由(删除)

意思是不把链接先删除,原文件是不能删除?

但我怎么可以:
ln test test1
rm test
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#11

帖子 delectate » 2008-08-01 17:50

jerry_zhou 写了:
后代 写了:
jerry_zhou 写了:adagio
硬连接--->备份此文件(但无需额外空间)


这个后面的 ---但无需额外空间 我不是很明白, 你能不能说明白点。
个人理解:

就像给某文件上了一个锁链(硬链接)


不把锁打开,就无法获得自由(删除)

意思是不把链接先删除,原文件是不能删除?

但我怎么可以:
ln test test1
rm test
刚刚理解错误了…… :oops:

唉,把四楼的话看错了

命令和基础我就不好:oops:

又google了一下

详细请看楼上的楼上 :lol:
上次由 delectate 在 2008-08-01 17:55,总共编辑 1 次。
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#12

帖子 delectate » 2008-08-01 17:52

还有一个就是软/硬链接的文件系统跨越

软链接可以跨文件系统使用
头像
kofshower
帖子: 1343
注册时间: 2007-03-13 11:23
联系:

#13

帖子 kofshower » 2008-08-01 18:18

BigSnake.NET 写了:硬链接连的是inode
软链接连的是路径
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

#14

帖子 冲浪板 » 2008-08-01 18:25

想起来了,所有文件包括连接文件给rm了,文件才真的消失.

jerry_zhou 写了:adagio
硬连接--->备份此文件(但无需额外空间)


这个后面的 ---但无需额外空间 我不是很明白, 你能不能说明白点。
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#15

帖子 poet » 2008-08-01 18:48

如果楼主学过C语言的话,可以用一个类比来解释:

Linux下所有的文件名都是指针,指向文件具体存放的位置。

创建硬连接,相当于复制了这个指针,因此两个指针指向同一个地址。也就是说两个文件名指向完全相同的一个文件。

创建软连接,相当于创建了一个指向指针的指针,因此当被指对象删除时就失效了。
回复