Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 12991|回复: 33

[技术] 谈谈 Hardlink、Junction和Symbolic link   [复制链接]

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-20 18:08:47 |显示全部楼层
本帖最后由 cjy__05 于 2014-7-21 15:50 编辑

先说说 Hardlink 硬链接。

从Windows NT4开始,NTFS文件系统就引入了Hardlink这个概念。
它让一个文件可以拥有多个访问路径,如图:

hardlink.png


只有当这三个文件都被删除后,NTFS才会删除掉真正的文件资料,释放出100KB。
NTFS限制一个文件最多可以有255条“红线”/访问路径。

优点:
- 兼容性最好
- 盘符被更改也不受影响
- 无需管理员权限
缺点:
- 必须在同一个分区
- 只支持本地驱动器
- 不支持文件夹

到了Win2000,就引入了Junction 连接点。它是属于软链接类型的。
它让一个文件夹可以有多个连接点,如图:
junction.png


App1访问CoolData文件夹时,系统会重定向到“真实的文件夹”。
可是App1会不知情,它会以为CoolData就是一个真实的文件夹。
当App1改动了CoolData文件夹内容,App2的Data文件夹内容也会跟着更新。
它们不知其实它们都在访问着“真实的文件夹”。

优点:
- 兼容性还好
- 支持文件夹
- 支持跨分区
- 无需管理员权限
缺点:
- 不支持相对路径
- 盘符被更改会受影响
- 不可指向文件/远程SMB网络路径
- 不支持重定向Windows核心文件夹,比如System32

Symbolic link,又称为符号链接,是在Vista的时候才有的新概念。
它可以说是Junction的增强版。
它可以指向任何路径,包括文件及不存在的路径。
它支持相对路径。
它支持跨文件系统。

缺点:
- 兼容性较差
- 必须管理员权限

HardVsSymbolic.png


一般来说,Symbolic link能免则免。因为Symbolic link不兼容某些软件,比如Win8.1的Windows Explorer,如果指向exe文件会提示找不到文件,但在cmd.exe却能运行。Win7的开始菜单搜索引擎也是只支持Junction不支持Symbolic link。现在我文件一般用Hardlink,文件夹用Junction,只有当要用到相对路径(比如我VHD需要考虑到盘符会不一样的问题)时,才使用Symbolic link。

相信有些人看到这里就不行了,已经晕了。的确,当你没有接触过这些东西时,会觉得这些太高深太乱了,因此我推荐大家使用这个软件,实践可以让你更容易明白这些概念。明白这些概念后,你就自然会明白我的Office 2013 with SP1 Collector Edition VHD是怎么回事了。

scrshot.png


64位:http://schinagl.priv.at/nt/hardlinkshellext/HardLinkShellExt_X64.exe
32位:http://schinagl.priv.at/nt/hardlinkshellext/HardLinkShellExt_win32.exe
9

查看全部评分

Rank: 19Rank: 19Rank: 19

UID
456912
帖子
39584
PB币
110
贡献
0
技术
18
活跃
5586

水神勋章

发表于 2014-4-20 18:18:00 |显示全部楼层
多谢,学习了。。。。。。。。。。。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-20 18:19:19 |显示全部楼层
rubycon 发表于 2014-4-20 18:18
多谢,学习了。。。。。。。。。。。

话说,你们TC可以开到那下载链接么?
1

查看全部评分

Rank: 1

UID
4194951
帖子
3
PB币
237
贡献
0
技术
0
活跃
109
发表于 2014-4-20 18:38:45 |显示全部楼层
那理论上,一个驱动器下的文件复制不就不需要时间了?建立链接不是瞬间的事?
但是实际上好像不是这样……

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-20 18:48:14 |显示全部楼层
Litrop 发表于 2014-4-20 18:38
那理论上,一个驱动器下的文件复制不就不需要时间了?建立链接不是瞬间的事?
但是实际上好像不是这样……

No no no...
硬链接和复制文件不是同一回事。。。
如果是创建硬链接,那文件只是多了一个访问路径,而不是完全“复制”其资料。
假设有a.txt,你创建了它的硬链接b.txt,你修改b.txt,那个a.txt的内容也会跟着改变……
如果你是复制a.txt为b.txt,它们之间的资料是独立的,b.txt的资料怎样更改都不会影响到a.txt的

Rank: 5Rank: 5Rank: 5

UID
1955126
帖子
1094
PB币
1768
贡献
0
技术
21
活跃
1233
发表于 2014-4-20 19:49:46 |显示全部楼层
很不错的科普,其实创建符号连接的时候用卷的名称去创建就不怕盘符更改了。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-20 21:17:30 |显示全部楼层
iiceuu 发表于 2014-4-20 19:49
很不错的科普,其实创建符号连接的时候用卷的名称去创建就不怕盘符更改了。

卷的名称是指disk label么?

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-20 21:18:21 |显示全部楼层
iiceuu 发表于 2014-4-20 19:49
很不错的科普,其实创建符号连接的时候用卷的名称去创建就不怕盘符更改了。

符号连接支持相对路径
要定位根目录只需要“\”

远景有关部门[已退役]

Rank: 9

UID
648169
帖子
4881
PB币
44673
贡献
0
技术
76
活跃
2316

Win10先驱者 我是大学生!

发表于 2014-4-20 21:33:23 |显示全部楼层
谢谢楼主普及知识啦!!

Rank: 2Rank: 2

UID
221764
帖子
396
PB币
3342
贡献
0
技术
20
活跃
525
发表于 2014-4-21 09:26:50 |显示全部楼层
这个帖子这么好 怎么就没人回呢 学习了

UID
79171
帖子
5386
PB币
19749
贡献
0
技术
64
活跃
1257

灵感勋章 远景智多星 Win10先驱者 远景技术达人

发表于 2014-4-21 10:00:33 |显示全部楼层
现在的WIMBOOT的指针文件,感觉也是类似Hardlink的东西的升级版,可以指向WIM镜像中的文件。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-21 15:40:35 |显示全部楼层
tongtc 发表于 2014-4-21 09:26
这个帖子这么好 怎么就没人回呢 学习了

感觉这几天论坛很冷,自己的帖子更冷
1

查看全部评分

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-21 15:41:11 |显示全部楼层
slice 发表于 2014-4-21 10:00
现在的WIMBOOT的指针文件,感觉也是类似Hardlink的东西的升级版,可以指向WIM镜像中的文件。

可惜上网本不支持WIMBOOT,不然我也要体验一下

Rank: 1

UID
807994
帖子
111
PB币
236
贡献
0
技术
24
活跃
1023
发表于 2014-4-21 15:48:58 |显示全部楼层
本帖最后由 he778800 于 2014-4-21 16:36 编辑

知道 这3个 但是 不知道 他们的 区别  谢谢 楼主科普 顺便 问下 比如 一个pe.wim 我从 一个工具盘文件夹里 硬链一个 到e:\根目录
那么 能否 用于 启动 该 pe?
上面的 我测试了下 可行
还有个 问题 就是 如果我 更改了 工具盘里的pe.wim 或者 硬链e:\根目录下的pe.wim 会怎么样?

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-21 18:19:14 |显示全部楼层
he778800 发表于 2014-4-21 15:48
知道 这3个 但是 不知道 他们的 区别  谢谢 楼主科普 顺便 问下 比如 一个pe.wim 我从 一个工具盘 ...

根目录的被修改,工具盘里的也会被修改
要注意hardlink是必须相同分区的,如果跨分区你可能使用了symbolic link

Rank: 1

UID
807994
帖子
111
PB币
236
贡献
0
技术
24
活跃
1023
发表于 2014-4-21 18:28:00 |显示全部楼层
raymai97 发表于 2014-4-21 18:19
根目录的被修改,工具盘里的也会被修改
要注意hardlink是必须相同分区的,如果跨分区你可能使用了symbol ...

明白了 多谢指点

Rank: 11Rank: 11Rank: 11

UID
2562414
帖子
8646
PB币
8028
贡献
0
技术
0
活跃
979
发表于 2014-4-21 18:47:09 |显示全部楼层
科谱学习顶起哦

Rank: 5Rank: 5Rank: 5

UID
1955126
帖子
1094
PB币
1768
贡献
0
技术
21
活跃
1233
发表于 2014-4-21 21:06:56 来自手机 |显示全部楼层
raymai97 发表于 2014-4-20 21:17
卷的名称是指disk label么?

命令行下输入mountvol /?出来的那些一长串们就是卷名,用起来和盘符是的。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16315
PB币
23406
贡献
0
技术
821
活跃
3407

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-4-21 21:17:33 |显示全部楼层
iiceuu 发表于 2014-4-21 21:06
命令行下输入mountvol /?出来的那些一长串们就是卷名,用起来和盘符是的。

太感谢你了,还真没发现有这样的东西~
这下Junction也不怕盘符问题了~

这是一个马甲

UID
1612747
帖子
13673
PB币
16087
贡献
0
技术
4552
活跃
20351

十周年 7周年庆典勋章 我是大学生!

发表于 2014-5-5 13:19:23 |显示全部楼层
这个功能应该是vista时代才有的文件指针?就是系统中Documents and Settings这类文件依然存在 但实际功能已经比users替代?
关闭

站长推荐

推荐好友加入远景可拿奖励
推荐好友进远景,可以拿3重奖励,PBB,威望,勋章,通通有~ 本帖只限回复推荐用
回顶部
Copyright (C) 2005-2018 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件