V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
awanganddong
V2EX  ›  程序员

ln -s 软链接的问题

  •  1
     
  •   awanganddong · 2022-11-26 16:34:22 +08:00 · 1659 次点击
    这是一个创建于 762 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.代码仓库是 /codebase/test_version 2.代码访问路径是 /code/test

    现在想要的目的是把 test_version 代码软链接到 test 下 但是操作出来的效果是 /code/test/test_version 所以想知道正确的命令是什么

    8 条回复    2022-11-26 20:42:21 +08:00
    dorothyREN
        1
    dorothyREN  
       2022-11-26 17:02:37 +08:00   ❤️ 1
    ln -s /codebase/test_version /code/test
    zhanglintc
        2
    zhanglintc  
       2022-11-26 17:11:32 +08:00
    注意这两点就行:
    1. 软链接的时候使用完整的绝对路径。
    2. 记住 ln 和 mv, cp 的顺序是一毛一样的。
    dorothyREN
        3
    dorothyREN  
       2022-11-26 17:16:16 +08:00
    @dorothyREN #1 要注意的是, 软链接是一个文件,不管你链接的是目录还是文件。 所以 不能存在 /code/test 这个文件或目录,
    ln -s /codebase/test_version /code/test/ 这种情况下 链接文件 就会创建在 /code/test/目录下。
    zhanglintc
        4
    zhanglintc  
       2022-11-26 17:27:57 +08:00
    噢,对,最后不能加斜杠
    8355
        5
    8355  
       2022-11-26 17:32:36 +08:00
    不知道你的问题是不是跟 nginx 有关 如果是的话需要 realpath
    awanganddong
        6
    awanganddong  
    OP
       2022-11-26 18:23:59 +08:00
    @dorothyREN 你说的意思我大概明白了。
    但是我有一个疑问就是,比如我第一次软链接到 /code/test/ 第二次执行的话,/code/test 已经存在了,我如果删除了 /code/test 那正访问该服务器的请求就挂了。这里不太理解

    我是参考 walle 来写发版工具的,但是出来的结果不太一样。

    cd /codebase/ && ln -sfn /codebase/1_390_20221121_152026 /codebase/current-tmp-390
    cd /codebase/ && mv -fT /codebase/current-tmp-390 /code/test
    dorothyREN
        7
    dorothyREN  
       2022-11-26 18:57:02 +08:00
    @awanganddong #6 可能是存在 test 目录的问题。
    awanganddong
        8
    awanganddong  
    OP
       2022-11-26 20:42:21 +08:00
    彻底明白了,谢谢大家
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:19 · PVG 02:19 · LAX 10:19 · JFK 13:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.