Ubuntu中的两种link的区别

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”,即可判断硬链接是链接到文件内容的链接。

实验过程:

n@ubt:~$ touch origin
n@ubt:~$ echo "lorem ipsum" >> origin
n@ubt:~$ cat origin
lorem ipsum
n@ubt:~$ ln origin origin_hard
n@ubt:~$ 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
n@ubt:~$ cat origin_hard
lorem ipsum
n@ubt:~$ rm origin
n@ubt:~$ ls -l | grep origin
-rw-rw-r-- 1 n n   12 9月   5 23:05 origin_hard
n@ubt:~$ cat origin_hard
lorem ipsum
n@ubt:~$ 

结论:

硬链接(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)仅是指向目标文件地址的链接,而非文件内容。

实验过程:

n@nbt:~$ touch origin
n@nbt:~$ echo "lorem ipsum" >> origin
n@nbt:~$ ln -s origin origin_soft
n@nbt:~$ cat origin_soft 
lorem ipsum
n@nbt:~$ rm origin
n@nbt:~$ cat origin_soft
cat: origin_soft: No such file or directory
n@nbt:~$ 

结论:

软链接(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数据。

 

转载于:https://www.cnblogs.com/rickqin/p/7482637.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值