создать символическую ссылку с ln, но будет создан цикл

Я хотел бы создать символическую ссылку из моего источника:

/nfs/www/example.com/sourcefolder 

к этому месту назначения:

 /var/www/example.com/destinationfolder 

Поэтому я запускаю эту команду:

 ln -s /nfs/www/example.com/sourcefolder /var/www/example.com/destinationfolder 

Моя проблема: если команда запускается два раза в папке назначения, это будет цикл

 /var/www/example.com/destinationfolder/sourcefolder/......./sourcefolder 

Я также тестировал:

 ln -s /dev/shm/ $APACHEHOME/tmp 

Поэтому у меня будет петлевая шпаргалка «shm». Проблема в том, что для веб-приложения требуется, чтобы папка называлась «tmp», но она должна отображаться в памяти.

Что я делаю неправильно?

Попробуйте использовать -v для получения более подробной информации:

 [root@centos7 ~]# mkdir /tmp/test/sourcefolder [root@centos7 ~]# ls -l /tmp/test total 0 drwxr-xr-x. 2 root root 6 Feb 21 11:40 sourcefolder [root@centos7 ~]# ln -v -s /tmp/test/sourcefolder /tmp/test/destinationfolder '/tmp/test/destinationfolder' -> '/tmp/test/sourcefolder' [root@centos7 ~]# ls -l /tmp/test total 0 lrwxrwxrwx. 1 root root 22 Feb 21 11:55 destinationfolder -> /tmp/test/sourcefolder drwxr-xr-x. 2 root root 6 Feb 21 11:40 sourcefolder 

Контур связи связан с поведением ln

 [root@centos7 ~]# ln -v -s /tmp/test/sourcefolder /tmp/test/destinationfolder '/tmp/test/destinationfolder/sourcefolder' -> '/tmp/test/sourcefolder' [root@centos7 ~]# ls -l /tmp/test total 0 lrwxrwxrwx. 1 root root 22 Feb 21 11:55 destinationfolder -> /tmp/test/sourcefolder drwxr-xr-x. 2 root root 25 Feb 21 11:57 sourcefolder [root@centos7 ~]# ls -l /tmp/test/sourcefolder total 0 lrwxrwxrwx. 1 root root 22 Feb 21 11:57 sourcefolder -> /tmp/test/sourcefolder 

который пытается проанализировать папку назначения как каталог вместо уже существующей символической ссылки.

Вы можете избежать этого, используя -T:

 [root@centos7 ~]# ln -v -T -s /tmp/test/sourcefolder /tmp/test/destinationfolder '/tmp/test/destinationfolder' -> '/tmp/test/sourcefolder' [root@centos7 ~]# ln -v -T -s /tmp/test/sourcefolder /tmp/test/destinationfolder ln: failed to create symbolic link '/tmp/test/destinationfolder': File exists