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

244 linux terminal symlink

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

sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Run Code Online (Sandbox Code Playgroud)

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

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

Fat*_*ror 251

ln如果第二个arg是目录,则这是行为.它把一个链接到第一个参数里面.如果您想/etc/nginx成为符号链接,则应首先删除该目录并运行相同的命令.

  • 那个Unix.SE链接在这里解决了.似乎我们得到了循环依赖. (10认同)

Cel*_*ada 30

ln是当目标已经存在并且是目录时要记录的内容.如果你想/etc/nginx成为一个符号,而不是包含一个符号,你最好不要将其创建为一个目录第一!

  • 您的答案只有在读者已经知道答案的背景下才有意义.对于提出这个问题的人来说,这是没用的 (50认同)

小智 9

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

if [ ! -d /etc/nginx ]; then ln -s /usr/local/nginx/conf/ /etc/nginx > /dev/null 2>&1; fi
Run Code Online (Sandbox Code Playgroud)

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