软链接与硬链接

简介:

软链接和硬链接的区别:

首席我们通过一个实例直观的感受一下。

*软链接:(1)这个是/mnt/file文件详细信息:

29622064_13981423179i15.png


注意最左侧file文件的inode号是6294764.我们一会要和链接文件进行对比.

(2)建立软链接:

ln -s /mnt/file /root/Desktop(-s 表示软链接)

再键入命令ls -il /root/Desktop,/root/Desktop桌面上会出:


29622064_1398142329XFRy.png


好了大家注意一下几个细节:

1. 文件的inode和以前不同了,变成12329279.;

2. 文件权限的位置处-变成l,表示这是一个链接;

3. 文件的大小也发生了不同由65变成了9,而且我对/root/Desktop/file的文件进行编辑后发现它的大小依然还是9.而且file文件指向了/mnt/file

4.最关键的一点是:inode的链接数目是1,而不是2.

(3)对源文件内容进行监控:

watch cat /mnt/file,原本如图所示:

29622064_1398142344T881.png

然后对/root/Desktop上的file文件进行编辑:

vim /root/Desktop/file,进入vim后发现和/mnt/file的内容相同


29622064_13981423799Bmc.png


当我们对/root/Desktop上的file编辑保存后发现/mnt/file的内容也发生了相同的变化。

*硬链接

建立硬链接:

29622064_1398142391c3yC.png硬链接我们可把它当作是指针去理解,但是系统是不会为它重新分配inode号的,如图所示:


29622064_1398142403PprS.png

可以与源文件进行对比,两者的inode是相同的。文件大小也是相同的,但是有个小细节变化:链接数发生了变化,变成2了。

对于ln命令的操作结果,我们可以这样去理解,两个文件其实是同一个文件的两个不同的名字,就好象是两个指针指向同一片区域一样。它们有着同样的inode号和文件属性,建立硬链接就是在建立新的指针,如果我们要删除这个文件,必须删除所有的链接,让inode的数目变为0,此时内核才会把文件从设备中删除。

硬链接有以下限制:

(1) 首先不可以在不同的文件系统之间建立硬链接;

(2) 只有超级用户才可以为目录创建应链接,如图所示,我切换到了普通用户student下执行硬链接,发生了报错:


29622064_13981424151ql9.png


*软链接与硬链接的区别:(这部分是摘抄别人的,因为觉得总结的很全面):

硬链接原文件&链接文件公用一个inode号,说明他 们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;

在文件属性上软链接明确写出了是链接文件,而硬链接没有写 出来,因为在本质上硬链接文件和原文件是完全平等关系;

链接数目是不一样的,软链接的链接数目不会增加;

文件大小是不一样的,硬链接文件显示的大小是跟原 文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实 际上就是“file1”的大小。 

总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。



本文转自 游骑兵vtx 51CTO博客,原文链接:http://blog.51cto.com/qibingtuan/1980955

相关文章
|
7月前
|
搜索推荐 Unix Linux
深入了解ln命令:创建硬链接和符号链接的实用指南
深入了解ln命令:创建硬链接和符号链接的实用指南
137 0
|
7月前
|
Windows
软连接和硬连接的区别详解?
软连接和硬连接的区别详解?
软链接
软链接
60 0
|
Linux Windows
Linux文件系统ln-软连接、硬链接
ln命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,又称为硬链接;另一种是symbolic link,又称为符号链接。
181 0
Linux文件系统ln-软连接、硬链接
|
算法 Linux Windows
硬链接和软链接有什么区别
硬链接和软链接有什么区别
|
Linux 开发者 Windows
软链接和硬链接 | 学习笔记
快速学习软链接和硬链接。
148 0