两个目录之间的Linux符号链接命令将目录添加到链接路径

问题描述 投票:0回答:1

所以我有一个 Linux 服务器,我使用 Gitlab Envoy 指南从 Gitlab 部署临时 Laravel 应用程序

文件夹结构如下:

  • /public_html/
    main folder where user is redirected to
  • /发布/
    folder with all releases
    • /时间戳A/
      specific release app
    • /时间戳B/
      specific release app

在之间创建符号链接时出现问题

ln -nfs releases/timestamp public_html

创建的符号链接如下所示

./releases/timestamp -> public_html/timestamp

现在应该是这样的

./releases/timestamp -> public_html

有谁知道为什么会发生这种情况以及如何解决它?

command symlink laravel-envoy
1个回答
0
投票

发生这种情况是因为

public_html
已经存在并且是一个目录。

来自

man ln
(粗体是我的):

给定一两个参数,

ln
创建指向现有文件的链接
source_file
。如果给出
target_file
,则链接具有该名称;
target_file
也可以是放置链接的目录
; 否则它被放置在当前目录中。如果仅指定目录,则链接将指向
source_file
的最后一个组件。

为了实现您想要的效果,您应该首先删除

public_html
文件夹(或将
-F
选项添加到
ln
命令,但不保证有效)。

© www.soinside.com 2019 - 2024. All rights reserved.