cowboy 发表于 2005-1-17 22:51:01

‘symbolic links’‘ hard links’

‘symbolic links’和‘hard links’分别是什么啊?准确的定义是什么啊?

6692975 发表于 2005-1-18 00:50:26

symbolic links 相当于win下的“快捷方式”
源文件坏掉,链接自然就坏掉了。
symbolic links 占用inode 占用一定的空间。比较灵活,可以跨文件系统,可以链接目录

hard links 链接文件与源文件同用一个inode,不占用空间,不可以跨文件系统,一般也不允许链接目录。删除其中的一个,另一个可以正常使用。
有点cp的感觉,但是不同。
实际上因为它们同用一个inode。
比如定位/home/blue/test这个文件时,首先找到/home的inode,然后找到blue的inode,在找test的inode.
因为hard links链接出的文件inode是相同的,所以删除了其中的一个,inode还是存在的。
只有当所有的inode都没有了,这个文件就没了。

小弟对linux的FS不了解,不知道这么理解对不对,请大侠指点。

cowboy 发表于 2005-1-19 15:24:25


什麽是 symbolic links?就其字面而言,其功用在於制作档案或目录的连结(产生捷 )。 symbolic links可以创造一个和原本档案有相同性质的目录(linked file),它不需太多储存空间的原因在於它是一个指向原本档案的连结,而连结如何指向档案是hard link和symbolic link的其中一个不同点。

ln预设产生的连结是hard连结,指向档案的hard连结和原本的档案没什麽差别。不论hard连结的名称和原本档案的名称取得一样或是不一样,对原本档案或对hard连结做的改变都会影响到原本的档案。 hard连结因为没办法对目录做连结,而不能延伸档案系统.。

symbolic连结则包含了要被连过去档案名字,有可能跨越档案系统连结到目录,如果後面接一或二个参数, link会建立一连结到一个存在的档案source_file,如果有给target_file,则连结可以被指定名称(taget_flie 的名称),否则连结会建立在目前所在的目录。只要有目录被指定当 source_file,则连结只会使用source_file的最後一部份当source_file。


建立档案连结的指令为 "ln",以下是所做的范例 :

hard link就是复制原来的档案,但实际只保留一份, 如果改变连结中的ㄧ个档案,其馀连结也跟著改变。 且hard link只局限於同一磁碟分割区中

#ln /usr/lib/libGLU.so.1.3 libGLU.so.3

symbolic link代表ㄧ寻找特定档案的路径,如果原来的档案被移除,该连结就会无法使用。 symbolic link可以连结不同分割区

#ln -s /usr/java/javaplug.lib /usr/mozilla/plugins/
-s, --symbolic
make symbolic links instead of hard links

我在别处找的一段资料
页: [1]
查看完整版本: ‘symbolic links’‘ hard links’