Create a symbolic link of directory in Ubuntu
Below is my code for creating a symlink of a directory:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
I already created the directory /etc/nginx
. I just want the contents of the source directory ( /usr/local/nginx/conf/
) to be in the contents of the target directory ( /etc/nginx
). But when I execute the code, /etc/nginx
contains a directory called conf
, instead of the contents of conf
. That directory contains the contents I want, but in the wrong location.
Why did it put a directory in the target folder, instead of just putting the contents of the directory in the target folder?
This is the behavior of ln
if the second arg is a directory. It places a link to the first arg inside it. If you want /etc/nginx
to be the symlink, you should remove that directory first and run that same command.
That's what ln
is documented to do when the target already exists and is a directory. If you want /etc/nginx
to be a symlink rather than contain a symlink, you had better not create it as a directory first!
In script is usefull something like this:
if [ ! -d /etc/nginx ]; then ln -s /usr/local/nginx/conf/ /etc/nginx > /dev/null 2>&1; fi
it prevents before re-create "bad" looped symlink after re-run script
链接地址: http://www.djcxy.com/p/78108.html上一篇: 如何在xampp中为osx设置符号链接
下一篇: 在Ubuntu中创建目录的符号链接