私のソースからシンボリックリンクを作成したいと思います。
/nfs/www/example.com/sourcefolder
この目的地まで:
/var/www/example.com/destinationfolder
だから、次のコマンドを実行します。
ln -s /nfs/www/example.com/sourcefolder /var/www/example.com/destinationfolder
私の質問:ターゲットフォルダでコマンドを2回実行するとループが発生します。
/var/www/example.com/destinationfolder/sourcefolder/......./sourcefolder
私も次のことをテストしました。
ln -s /dev/shm/ $APACHEHOME/tmp
だからループフォルダ"shm"を持つようになります。問題は、Webアプリケーションがフォルダ名を「tmp」として指定する必要がありますが、メモリにマップする必要があることです。
私は何が間違っていましたか?
ベストアンサー1
より詳細な出力が必要な場合は、-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