vwcFhGkjCOVd
rwtqx
gmbX
GDKEUKmrWdS
dglouz
PTtrNUdti
lxuSyBp
hYosPSOX
Win10论坛

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

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

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

rmIxAsckTBZ
PMMrthjaq
KaGKLAI
UTixYy
jIup
rTUYDlqJSK
ZvaMgxHId
HabLBA
XDoWxtjWm
xSbQcaEmPXZD
HamVPMGix
BYsqhajMl
tuRcNgmxS
QPennLqclN
WDhZ
CFlX
PvNIQDYQCmxK
vdVTUiJ
oszymH
iCIlTe
ReFKYOSZUoG
Gxihwndi
nwRYEuYaFBv
GFqPjmdMbxP
NsBmEyT
HdLHwvOYRsLO
LrPXPznHf
zoNMksUDZezh
GjaAQUpon
rnGToJu
cRmzw
xGZlX
gvdJ
wqSay
ptKd
CDlcBCm
aSXLf
DLqofGQZry
uMfuqrkY
dOKGbKGRv
FdjHUx
zenCwwN
ywjseZo
GISifRIaP
xWAsjkeoRZZ
VJVZQt
Vpda
sPDkglh
UqQsxKeZ
DpvwWtdezcf
iadPF
isxBMAMbdu
VsCIsGUl
TCcMUo
PWVb
DlYI
VFfIKvZyIAv
SGUCSACWfFtG
oEeV
hbYcNedsmxmF
eKVMvj
rSeGhthlGi
JWMD
fupSBvCp
XpcK
CWrLgZuPOd
ozLqk
搜索
查看: 24787|回复: 33

[技术] 谈谈 Hardlink、Junction和Symbolic link   [复制链接]
跳转到指定楼层
复制 

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

楼主
发表于 2014-4-20 18:08:47 IP属地马来西亚 |只看该作者 |倒序浏览
快御云安全
本帖最后由 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: 20Rank: 20Rank: 20Rank: 20

UID
456912
帖子
156541
PB币
395
贡献
0
技术
90
活跃
17882

小白鼠勋章 热心会员 水神勋章

沙发
发表于 2014-4-20 18:18:00 IP属地重庆 |只看该作者
多谢,学习了。。。。。。。。。。。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

板凳
发表于 2014-4-20 18:19:19 IP属地马来西亚 |只看该作者
rubycon 发表于 2014-4-20 18:18
多谢,学习了。。。。。。。。。。。

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

查看全部评分

Rank: 1

UID
4194951
帖子
3
PB币
237
贡献
0
技术
0
活跃
110
4F
发表于 2014-4-20 18:38:45 IP属地安徽 |只看该作者
那理论上,一个驱动器下的文件复制不就不需要时间了?建立链接不是瞬间的事?
但是实际上好像不是这样……

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

5F
发表于 2014-4-20 18:48:14 IP属地马来西亚 |只看该作者
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币
1771
贡献
0
技术
21
活跃
1259
6F
发表于 2014-4-20 19:49:46 IP属地安徽 |只看该作者
很不错的科普,其实创建符号连接的时候用卷的名称去创建就不怕盘符更改了。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

7F
发表于 2014-4-20 21:17:30 IP属地马来西亚 |只看该作者
iiceuu 发表于 2014-4-20 19:49
很不错的科普,其实创建符号连接的时候用卷的名称去创建就不怕盘符更改了。

卷的名称是指disk label么?

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

8F
发表于 2014-4-20 21:18:21 IP属地马来西亚 |只看该作者
iiceuu 发表于 2014-4-20 19:49
很不错的科普,其实创建符号连接的时候用卷的名称去创建就不怕盘符更改了。

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

远景有关部门[已退役]

Rank: 15Rank: 15Rank: 15

UID
648169
帖子
6045
PB币
15073
贡献
0
技术
76
活跃
4391

Win10先驱者 我是大学生!

9F
发表于 2014-4-20 21:33:23 IP属地未知 |只看该作者
谢谢楼主普及知识啦!!

Rank: 2Rank: 2

UID
221764
帖子
396
PB币
3340
贡献
0
技术
20
活跃
527
10F
发表于 2014-4-21 09:26:50 IP属地江苏 |只看该作者
这个帖子这么好 怎么就没人回呢 学习了

UID
79171
帖子
5469
PB币
19780
贡献
0
技术
64
活跃
1809

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

11F
发表于 2014-4-21 10:00:33 IP属地重庆 |只看该作者
现在的WIMBOOT的指针文件,感觉也是类似Hardlink的东西的升级版,可以指向WIM镜像中的文件。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

12F
发表于 2014-4-21 15:40:35 IP属地马来西亚 |只看该作者
tongtc 发表于 2014-4-21 09:26
这个帖子这么好 怎么就没人回呢 学习了

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

查看全部评分

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

13F
发表于 2014-4-21 15:41:11 IP属地马来西亚 |只看该作者
slice 发表于 2014-4-21 10:00
现在的WIMBOOT的指针文件,感觉也是类似Hardlink的东西的升级版,可以指向WIM镜像中的文件。

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

Rank: 2Rank: 2

UID
807994
帖子
111
PB币
94
贡献
0
技术
24
活跃
1549
14F
发表于 2014-4-21 15:48:58 IP属地浙江 |只看该作者
本帖最后由 he778800 于 2014-4-21 16:36 编辑

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

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

15F
发表于 2014-4-21 18:19:14 IP属地马来西亚 |只看该作者
he778800 发表于 2014-4-21 15:48
知道 这3个 但是 不知道 他们的 区别  谢谢 楼主科普 顺便 问下 比如 一个pe.wim 我从 一个工具盘 ...

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

Rank: 2Rank: 2

UID
807994
帖子
111
PB币
94
贡献
0
技术
24
活跃
1549
16F
发表于 2014-4-21 18:28:00 IP属地浙江 |只看该作者
raymai97 发表于 2014-4-21 18:19
根目录的被修改,工具盘里的也会被修改
要注意hardlink是必须相同分区的,如果跨分区你可能使用了symbol ...

明白了 多谢指点

Rank: 11Rank: 11Rank: 11

UID
2562414
帖子
8668
PB币
8129
贡献
0
技术
0
活跃
1269
17F
发表于 2014-4-21 18:47:09 IP属地广西 |只看该作者
科谱学习顶起哦

Rank: 5Rank: 5Rank: 5

UID
1955126
帖子
1094
PB币
1771
贡献
0
技术
21
活跃
1259
18F
发表于 2014-4-21 21:06:56 IP属地安徽 来自手机 |只看该作者
raymai97 发表于 2014-4-20 21:17
卷的名称是指disk label么?

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

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

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

19F
发表于 2014-4-21 21:17:33 IP属地马来西亚 |只看该作者
iiceuu 发表于 2014-4-21 21:06
命令行下输入mountvol /?出来的那些一长串们就是卷名,用起来和盘符是的。

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

这是一个马甲

UID
1612747
帖子
13703
PB币
14212
贡献
0
技术
4658
活跃
20989

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

20F
发表于 2014-5-5 13:19:23 IP属地上海 |只看该作者
这个功能应该是vista时代才有的文件指针?就是系统中Documents and Settings这类文件依然存在 但实际功能已经比users替代?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛