Linux杂谈(一):软链接与硬链接

文档总结

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”的大小。 

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




你可能感兴趣的:(Desktop,watch,源文件,详细信息,如图所示)