windows 10 操作系统、电脑、应用程序等

番茄系统家园 · 2021-08-31 04:25:41

windows 10 操作系统、电脑、应用程序等

自带了创建硬连接的命令:,利用这个命令,我们可以给指定的文件创建硬连接:

下面的命令将在和之间建立硬连接关系

为===创建了硬链接

注意上面的例子:本是一个不存在的文件,但是当执行完命令以后,link.txt文件也就被创建了。其实,link.txt是一个虚假的文件,它是在文件系统层面上对source.txt文件的一个映射,而link.txt是不占硬盘空间的。

关于硬盘空间的占用问题,Smallfrogs是这样测试的:

1、给硬盘划分一个新分区,空间只有2GB

2、在这个分区的test目录里面新建了一个1.9GB大小的文件,此时剩余空间是0.1GB

3、用mklink命令给这个1.9GB大小的文件建立了一个硬连接

4、检查这个分区的剩余空间,还是0.1GB,但是如果用资源管理器看test目录的属性,会发现有2个文件,总大小是3.8GB(整个分区才2GB,能够容纳3.8GB大小的文件吗?显然不可能了)

还是针对上述的例子,如果我们把原始的文件source.txt删除以后,link.txt文件还是会继续存在的,且内容就是source.txt的文件内容。也就是说,我们删除source.txt,实际上删除的仅仅是这种连接关系,文件本身还是没有被操作的。

关于硬连接,最后一个需要介绍的内容是:当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改。例如上面的例子:如果修改了link.txt,那么source.txt文件也会同步被修改,反之亦然。这一点和SHELL层面的快捷方式不同,SHELL层面的快捷方式文件LNK仅仅是一个指示关系,修改LNK文件并不影响LNK文件指向的对象,修改LNK文件指向的对象也不会影响LNK文件。

好了,基本知识介绍完了,我们来实际看看Windows目录里面对于硬连接的使用情况吧。

经常看到有人抱怨,WindowsWinSxS目录占用了太多的空间,里面经常发现有同名的文件,而且这些同名的文件在WindowsSystem32目录下面也有存在,这是为啥呢?其实这就是硬连接导致的。

Microsoft实际上在WindowsWinSxS目录和Windows目录之间建立了硬连接的关系,举一个最简单的例子:

对于Windows7RTM来说,你可以在2个地方找到Ntoskrnl.exe文件。第一个地方是:WindowsSystem32ntoskrnl.exe,另外还有一个地方是WindowsWinSxSx86_microsoft-windows-os-kernel_31bf3856ad364e35_6.1.7600.16385_none_6c06b7c41576a7d9ntoskrnl.exe,这就是一个典型的硬连接例子。Microsoft在文件系统上面对ntoskrnl.exe做了一个硬连接,使得ntoskrnl.exe能够出现在不同的目录里面,但是只占用了一份ntoskrnl.exe的硬盘空间。利用这种机制,有下面的一些好处:

同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间

如果涉及文件更新,只需要先在WinSxS目录里面下载好一个新版本,然后修改WindowsSystem32下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少

补丁卸载也是一样的,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改

相关阅读

  • win7电脑硬盘隐藏
  • 笔记本磁盘占用率10win7硬盘占用0怎么办
  • windows 10 操作系统、电脑、应用程序等
  • 免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/post/54948.html
    猜你喜欢
    最新应用
    热门应用