1.代码仓库是 /codebase/test_version 2.代码访问路径是 /code/test
现在想要的目的是把 test_version 代码软链接到 test 下 但是操作出来的效果是 /code/test/test_version 所以想知道正确的命令是什么
1
dorothyREN 2022-11-26 17:02:37 +08:00 1
ln -s /codebase/test_version /code/test
|
2
zhanglintc 2022-11-26 17:11:32 +08:00
注意这两点就行:
1. 软链接的时候使用完整的绝对路径。 2. 记住 ln 和 mv, cp 的顺序是一毛一样的。 |
3
dorothyREN 2022-11-26 17:16:16 +08:00
@dorothyREN #1 要注意的是, 软链接是一个文件,不管你链接的是目录还是文件。 所以 不能存在 /code/test 这个文件或目录,
ln -s /codebase/test_version /code/test/ 这种情况下 链接文件 就会创建在 /code/test/目录下。 |
4
zhanglintc 2022-11-26 17:27:57 +08:00
噢,对,最后不能加斜杠
|
5
8355 2022-11-26 17:32:36 +08:00
不知道你的问题是不是跟 nginx 有关 如果是的话需要 realpath
|
6
awanganddong OP @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 |
7
dorothyREN 2022-11-26 18:57:02 +08:00
@awanganddong #6 可能是存在 test 目录的问题。
|
8
awanganddong OP 彻底明白了,谢谢大家
|