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

下面是我创build一个目录的符号链接的代码:

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

我已经创build了目录/etc/nginx 。 我只想将源目录(conf)的内容放在目标目录(nginx)的内容中。 但是当我执行代码时, /etc/nginx包含一个名为“conf”的目录,而不是“conf”的内容。 该目录包含我想要的内容,但位置错误。

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

如果第二个参数是一个目录,这就是ln的行为。 它放置一个链接到第一个参数里面 。 如果您希望/etc/nginx成为符号链接,则应先删除该目录并运行相同的命令。

这就是当目标已经存在并且是一个目录时logging下来的事情。 如果你希望/etc/nginx 成为一个符号链接而不是包含一个符号链接,那么最好不要把它作为一个目录来创build!

在脚本是有用的是这样的:

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

它可以防止在重新运行脚本之前重新创build“坏”循环符号链接