硬连接
硬连接是对于同一文件系统的一个文件的连接,节点是文件存在的唯一标识,在文件系统中是唯一的,但在不同的文件系统则有可能重复。这样的话,在不同文件系统中作链接时,是不能使用ln A B,应该用符号连接,即是软连接,它只是包含了系统中一个完整的路径名引用。硬连接就是记录了文件的地址,你在文件管理器中看到的每个文件都是磁盘里文件的“硬连接”。当一个文件的所有硬连接都被删除的时候,该文件占用的空间才可以被新加入的数据覆盖。
基本信息
- 中文名
硬连接
- 外文名
Hard-wired
- 拼音
yìnglián jiē
- 注音
ㄧㄥˋㄌㄧㄢˊ ㄐㄧㄝ
基本内容
在Windows下创建硬连接
在LINUX、UNIX下面创建硬连接已经“司空见惯”了(上面提到的是Linux里面的命令),这里说的是怎么在Windows下面创建硬连接。
Windows XP
XP 也有硬连接?没错!不过,先声明,这个仅仅是NTFS才有的。另外要注意的是,硬连接不能跨卷的,简单的说就是不能在C盘给D盘的文件创建硬连接。
XP下面也有硬连接,只是知道的人不多(个人觉得是因为没有UI,所以知道的人少,但在win7里面被认为是“新功能”,那是因为WinSxS文件夹中的文件应用了硬连接技术,而让“硬连接”这一名词在Win7中名声大噪。搜索“Win7 硬连接”,大半的结果是说这件事的),所以应用也不广泛。
创建方法
fsutil hardlink create <新文件名> <现有文件名>
比如:
fsutil hardlink create C:\硬连接.txt C:\原文件.txt
这样C:\原文件.txt就多了一个“别名”:硬连接.txt。
另外,fsutil还有其它很有用的功能,比如,改短名,详细自己输入fsutil慢慢看。
上面说的是为文件创建硬连接,能不能给文件夹创建硬连接呢?可以用一个工具——junction.exe,可以用来创建文件夹硬连接,这个可以跨分区——你是否产生了“把D:\TEST 指向 C:\ ,然后再用 fsutil hardlink create D:\test.ini D:\TEST\boot.ini 这个命令来创建跨分区文件硬连接”的想法呢?我试了,失败,输出结果如下(因为我的junction刚下载,是一个压缩包,就用WinMount虚拟成一个盘了。粗体字是系统输出的,其中包含网址的那行删掉了):
Z:\>junction.exe d:\test c:\
Junction v1.05 - Windows junction creator and reparse point viewer Created: d:\test Targetted at: c:\
Z:\>fsutil hardlink create d:\test.exe d:\test\boot.ini
新链接和现有文件必须在同一个卷上。
junction命令还可以把空文件夹删除掉:
D:\>md TestJunctionDir