概述:
软链接相当于windows的快捷方式,如果被链接的文件名删除了,那么这个软连接也就无效。硬链接,又被称为符号链接,如果被链接的文件名删了,你还是可以通过硬链接访问到文件内容。
软链接:
创建软链接的命令: ln -s targetfile softlink
下面是我的实例说明 ( 红色是自己特意标记上去的 ) :
very@Ubuntu:~/Downloads/test$ ln -s targetfile.pdf softlink
very@Ubuntu:~/Downloads/test$ ls -l softlink
lrwxrwxrwx 1 very very 14 2011-07-04 22:39 softlink -> targetfile.pdf
very@Ubuntu:~/Downloads/test$ ls -l targetfile.pdf
-rw-r--r-- 2 very very 150600 2011-06-30 09:01 targetfile.pdf
由上可知:
用ls-l列出softlink属性时,softlink的连接数为1,
并且softlink后面会有一个箭头指向目标文件。
用 ls-l 列出targetgfiel 属性时,发现targetfile 的连接数变为了2 。
硬链接:
创建硬链接的命令:ln targetfile hardlink
下面是我在上面的基础上运行的实例:
very@Ubuntu:~/Downloads/test$lntargetfile.pdf hardlink
very@Ubuntu:~/Downloads/test$ls -ltargetfile.pdf
-rw-r--r-- 3 veryvery150600 2011-06-30 09:01 targetfile.pdf
very@Ubuntu:~/Downloads/test$ls-l hardlink
-rw-r--r-- 3 veryvery150600 2011-06-30 09:01 hardlink
由上可知:
hardlink的属性和targetfile的属性完全相同。同时文件的连接数增加至3。
硬链接有两个限制(软连接可以克服):
1. 不允许给目录创建硬链接;( 否则整个文件系统可能会出现环)
2. 只有再同一个文件系统中的文件才可以建立硬链接。
总结:
用形式化的方式简述一下磁盘内容 ,targetfile,hardlink,softlink 之间的关系:
软链接: softlink--->targetfile --->磁盘内容;
硬链接: targetfile--> 磁盘内容<--hardlink。
不知道各位有没有注意到两者的区别,
softlink是通过指向targetfile來访问磁盘内容的。
hardlink是直接指向磁盘内容的。
这样就不难解释,对于软连接,删除了 targetfile 之后就无效,
而对于硬链接,即使你删除了 targetfile ,你依然可以访问得到文件,
由于它们指向的是同一磁盘内容 , 那么它们的属性当然一样了。
参考网页: http://hi.baidu.com/lalafour/blog/item/459faa30ef9f4590a8018e09.html