首页 > 系统服务 > 详细

Ubuntu中的两种link的区别

时间:2017-09-06 09:31:52      阅读:519      评论:0      收藏:0      [点我收藏+]

标签:系统   简单的   grep   tor   ips   创建   什么   硬链接   log   

Ubuntu中有两种link(windows世界中文件的“快捷方式”),一个是hard link(硬链接),另一个是symbolic link(软链接)。

那么,什么是硬链接,什么又是软链接呢?

硬链接(hard link)

简单的说,硬链接会链接到目标文件的内容,即便目标文件在链接之后被改了名字,又或者被删掉了,硬链接以及硬链接的目标内容依然存在且有效。我们来做个实验。

实验过程设计:

1、创建一个文本文件origin;

2、向origin文件中写入内容"lorem ipsum”;

3、建立一个硬链接origin_hard到origin文件;

4、显示origin_hard内容;

5、删除origin文件;

6、再次显示origin_hard内容。

结果判定:

如果在删除origin文件[1]之后origin_hard仍然可以显示“lorem ipsum”,即可判断硬链接是链接到文件内容的链接。

实验过程:

[email protected]:~$ touch origin
[email protected]:~$ echo "lorem ipsum" >> origin
[email protected]:~$ cat origin
lorem ipsum
[email protected]:~$ ln origin origin_hard
[email protected]:~$ ls -l | grep origin
-rw-rw-r-- 2 n n   12 9月   5 23:05 origin
-rw-rw-r-- 2 n n   12 9月   5 23:05 origin_hard
[email protected]:~$ cat origin_hard
lorem ipsum
[email protected]:~$ rm origin
[email protected]:~$ ls -l | grep origin
-rw-rw-r-- 1 n n   12 9月   5 23:05 origin_hard
[email protected]:~$ cat origin_hard
lorem ipsum
[email protected]:~$ 

结论:

硬链接(hard link)是一种特殊的文件,链接到内容,而非另一个文件的路径或地址(有别于软链接symbolic link)。

让我们再来看看软链接(symbolic link)

软链接(symbolic link)

软链接是指向目标文件所在路径的一种链接,也就是说,如果目标文件(以及文件内容)不存在了,指向这一文件地址的软链接将会指向一个不存在的文件地址,从而产生访问错误。与硬链接一样,我们同样通过一个实验来验证软链接的特性。

实验过程设计:

1、创建一个文本文件origin;

2、向origin文件中写入“lorem ipsum”;

3、建立一个软链接origin_soft,指向origin文件;

4、尝试通过origin_soft显示origin中的文本内容,用以验证软链接创建成功;

5、删除origin文件;

6、尝试再次通过origin_soft显示其内容。

结果判定:

如果在删除origin文件后,通过origin_soft不再可以显示“lorem ipsum”内容,即可说明软链接(symbolic link)仅是指向目标文件地址的链接,而非文件内容。

实验过程:

[email protected]:~$ touch origin
[email protected]:~$ echo "lorem ipsum" >> origin
[email protected]:~$ ln -s origin origin_soft
[email protected]:~$ cat origin_soft 
lorem ipsum
[email protected]:~$ rm origin
[email protected]:~$ cat origin_soft
cat: origin_soft: No such file or directory
[email protected]:~$ 

结论:

软链接(symbolic link)是指向目标文件地址的链接。当目标文件不存在时,软链接也会失去其链接目标。

附录

[1]文件——在Unix/Linux的世界中,文件(file)并非我们在windows操作系统中理解的那样。Unix/Linux的文件是指一个(块)数据,该数据没有文件名,仅有一个ID号(inode)。如果可以理解这个概念,那么再回过头来看硬链接(hard link),你就会发现创建一个硬链接的过程其实是在给同一个数据创建别名(一个新的文件名)。就拿上面我们的实验举例,“lorem ipsum”数据有一个文件名origin,之后我们又给了这个数据另一个文件名origin_hard。通过origin和origin_hard都可以访问到数据“lorem ipsum”,见图-1。

 技术分享

图-1

在硬链接实验环节我们删除的origin文件,确切的说,并非将lorem ipsum数据删掉了,而仅仅是删除了origin文件(指向Lorem ipsum数据的名称文件)。所以,数据并没有被删除,我们通过origin_hard文件依然可以访问到Lorem ipsum数据。然而,软链接并非如此,见图-2。

技术分享

图-2

图-2中,软链接origin_soft文件指向origin文件。一旦origin文件被删除,则Lorem ipsum数据将丢失所有指向其的有效引用。由于删除origin文件后,origin_soft丢失了引用目标,导致系统无法通过origin_soft访问Lorem ipsum数据。

 

Ubuntu中的两种link的区别

标签:系统   简单的   grep   tor   ips   创建   什么   硬链接   log   

原文:http://www.cnblogs.com/rickqin/p/7482637.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号