V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zeronofreya
V2EX  ›  问与答

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

  •  
  •   zeronofreya · 2022-04-07 01:24:51 +08:00 · 1458 次点击
    这是一个创建于 959 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    第 1 条附言  ·  2022-04-07 11:30:19 +08:00
    我有个下载目录 a ,里面内容太多,我想查看一天内最新下载的就很麻烦,时间排序资源管理器会把文件夹放在最上面,新文件往往在列表中间位置了
    那能不能有个目录 b ,里面映射了 a 的 一天内的文件及文件夹?

    修改移动 b 里的文件实际是移动 a 里的原始文件?
    10 条回复    2022-04-07 11:24:17 +08:00
    msg7086
        1
    msg7086  
       2022-04-07 01:36:56 +08:00
    > 「难不成 ps 保存导致地址变了?不可能吧」

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

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

    Windows 文件系统隧穿功能只能保持长短文件名、创建日期,不能保持硬链接,参考:
    https://devblogs.microsoft.com/oldnewthing/20050715-14/?p=34923
    Tumblr
        7
    Tumblr  
       2022-04-07 10:53:13 +08:00
    @ysc3839 #4 我知道 junction 不是硬链接。
    你看我写的 junction 是用 / 和前面分开的,这个和硬链接并列。🙃 符号链接我是把 symbolic link 放在括号里的。。。
    zeronofreya
        8
    zeronofreya  
    OP
       2022-04-07 11:19:33 +08:00
    @Tumblr 一开始用的 symlink ,但它不支持拖动,拖到 ps 里报错,所以才想到硬链接,没想到有这么个坑
    zeronofreya
        9
    zeronofreya  
    OP
       2022-04-07 11:22:19 +08:00
    @crab 原来如此,我还以为直接写源文件呢
    zeronofreya
        10
    zeronofreya  
    OP
       2022-04-07 11:24:17 +08:00
    @geelaw 学到了,那能实现映射一个文件吗?我补充了一下问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:30 · PVG 18:30 · LAX 02:30 · JFK 05:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.