1.软链接和硬链接的区别:
首席我们通过一个实例直观的感受一下。
*软链接:
(1)这个是/mnt/file文件详细信息:
注意最左侧file文件的inode号是6294764.我们一会要和链接文件进行对比.
(2)建立软链接:
ln -s /mnt/file /root/Desktop(-s 表示软链接)
再键入命令ls -il /root/Desktop,/root/Desktop桌面上会出:
好了大家注意一下几个细节:
1.文件的inode和以前不同了,变成12329279.;
2.文件权限的位置处-变成l,表示这是一个链接;
3.文件的大小也发生了不同由65变成了9,而且我对/root/Desktop/file的文件进行编辑后发现它的大小依然还是9.而且file文件指向了/mnt/file
4.最关键的一点是:inode的链接数目是1,而不是2.
(3)对源文件内容进行监控:
watch cat /mnt/file,原本如图所示:
然后对/root/Desktop上的file文件进行编辑:
vim /root/Desktop/file,进入vim后发现和/mnt/file的内容相同
当我们对/root/Desktop上的file编辑保存后发现/mnt/file的内容也发生了相同的变化。
*硬链接
建立硬链接:
硬链接我们可把它当作是指针去理解,但是系统是不会为它重新分配inode号的,如图所示:
可以与源文件进行对比,两者的inode是相同的。文件大小也是相同的,但是有个小细节变化:链接数发生了变化,变成2了。
对于ln命令的操作结果,我们可以这样去理解,两个文件其实是同一个文件的两个不同的名字,就好象是两个指针指向同一片区域一样。它们有着同样的inode号和文件属性,建立硬链接就是在建立新的指针,如果我们要删除这个文件,必须删除所有的链接,让inode的数目变为0,此时内核才会把文件从设备中删除。
硬链接有以下限制:
(1)首先不可以在不同的文件系统之间建立硬链接;
(2)只有超级用户才可以为目录创建应链接,如图所示,我切换到了普通用户student下执行硬链接,发生了报错:
*软链接与硬链接的区别:(这部分是摘抄别人的,因为觉得总结的很全面):
硬链接原文件&链接文件公用一个inode号,说明他 们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;
在文件属性上软链接明确写出了是链接文件,而硬链接没有写 出来,因为在本质上硬链接文件和原文件是完全平等关系;
链接数目是不一样的,软链接的链接数目不会增加;
文件大小是不一样的,硬链接文件显示的大小是跟原 文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实 际上就是“file1”的大小。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。