在Ubuntu中创建目录的符号链接[关闭]

问题描述 投票:239回答:3

下面是我创建目录符号链接的代码:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx

我已经创建了目录/etc/nginx。我只是希望源目录(/usr/local/nginx/conf/)的内容位于目标目录(/etc/nginx)的内容中。但是当我执行代码时,/etc/nginx包含一个名为conf的目录,而不是conf的内容。该目录包含我想要的内容,但位置错误。

为什么它将目录放在目标文件夹中,而不是仅仅将目录的内容放在目标文件夹中?

linux terminal symlink
3个回答
244
投票

如果第二个arg是目录,这是ln的行为。它会在其中放置第一个arg的链接。如果您希望/etc/nginx成为符号链接,则应首先删除该目录并运行相同的命令。


29
投票

当目标已经存在并且是目录时,这就是ln要记录的内容。如果你想让/etc/nginx成为一个符号链接而不是一个符号链接,你最好不要先将其创建为目录!


8
投票

在脚本中有用这样的东西:

if [ ! -d /etc/nginx ]; then ln -s /usr/local/nginx/conf/ /etc/nginx > /dev/null 2>&1; fi

它会在重新运行脚本之后重新创建“坏”循环符号链接之前阻止

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