在Ubuntu中创建目录的符号链接

时间:2012-02-01 22:28:32

标签: linux terminal symlink

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

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

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

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

3 个答案:

答案 0 :(得分:247)

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

答案 1 :(得分:30)

当目标已经存在并且是目录时,这就是ln要记录的内容。如果您希望/etc/nginx 符号链接而不是包含符号链接,最好不要先将其创建为目录!

答案 2 :(得分:9)

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

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

它会在重新运行脚本

之后重新创建“坏”循环符号链接之前阻止