windows 上的硬链接修改内容的疑问?

2022-04-07 01:24:51 +08:00
 zeronofreya

我在网上看到硬链接和原始文件指的是同一个文件,但我给一张图创建硬链接后,拖到 ps 里修改,原始文件没变。

mklink /H e:\2.jpg e:\1.jpg
为 e:\2.jpg <<===>> e:\1.jpg 创建了硬链接

这是怎么回事?难不成 ps 保存导致地址变了?不可能吧

图片大小都不一样了,完全就是两张图了

1457 次点击
所在节点    问与答
10 条回复
msg7086
2022-04-07 01:36:56 +08:00
> 「难不成 ps 保存导致地址变了?不可能吧」

为什么不可能?
ysc3839
2022-04-07 01:50:38 +08:00
很多程序保存文件是先把原有文件改名,然后用原来的名称保存新的,再把改名的旧文件删除。这么操作后硬链接就断开了。
Tumblr
2022-04-07 02:31:02 +08:00
大概率是保存路径变了。
硬链接相当于原文件的一个镜像,和原文件共享 content ,所以如果你确实覆盖了硬链接,则两边文件会同步更新的。

BTW ,硬链接 /Junction (这个一直不知道怎么翻译的)已经过时了,现在一般都是用符号链接( symbolic link )……
ysc3839
2022-04-07 02:35:17 +08:00
@Tumblr Junction 不是硬链接,更像是文件夹的符号链接,只不过这个“符号链接”在 SMB 网络共享的时候是由服务器进行解析后再返回给客户端的,客户端不知道这是一个 Junction ,而符号链接则是原样返回给客户端,让客户端自己解析。
crab
2022-04-07 02:58:06 +08:00
ps 应该是把图写出到临时文件名 xx.tmp ,然后删除硬链接 2.jpg ,再把 xx.tmp 重命名为 2.jpg 。
geelaw
2022-04-07 08:51:01 +08:00
因为 Photoshop 使用了保存、删除、重命名的安全保存操作序列——如果直接写文件,可能会出现 Photoshop 写到一半崩溃,导致文件完全损坏的情况。

Windows 文件系统隧穿功能只能保持长短文件名、创建日期,不能保持硬链接,参考:
https://devblogs.microsoft.com/oldnewthing/20050715-14/?p=34923
Tumblr
2022-04-07 10:53:13 +08:00
@ysc3839 #4 我知道 junction 不是硬链接。
你看我写的 junction 是用 / 和前面分开的,这个和硬链接并列。🙃 符号链接我是把 symbolic link 放在括号里的。。。
zeronofreya
2022-04-07 11:19:33 +08:00
@Tumblr 一开始用的 symlink ,但它不支持拖动,拖到 ps 里报错,所以才想到硬链接,没想到有这么个坑
zeronofreya
2022-04-07 11:22:19 +08:00
@crab 原来如此,我还以为直接写源文件呢
zeronofreya
2022-04-07 11:24:17 +08:00
@geelaw 学到了,那能实现映射一个文件吗?我补充了一下问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/845375

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX