既存のディレクトリへのシンボリックリンク

既存のディレクトリへのシンボリックリンク

/var/logディレクトリをシンボリックリンクに変更しようとしています。/var/log存在するので、以下のように試しました。

# cd /var
# mv log log.bk                             (1)
# ln -snf /path/to/somewhere/var/log log    (2)

この方法は、と/var/logの間に新しいディレクトリが作成されるため(何らかのシステム デーモンが作成すると思われます)、ディレクトリ内にシンボリック リンクが作成されるため、うまく機能しません。(1)(2)/var/log

# ls -l /var/log
     :
lrwxrwxrwx 1 root root    23 Sep  2 13:27 log -> /path/to/somewhere/var/log
-rw-r----- 1 root adm  38028 Sep  2 13:51 messages
     :

私の期待は以下の通りです。

# ls -l /var
    :
lrwxrwxrwx 1 root root    23 Sep  2 13:27 log -> /path/to/somewhere/var/log
drwxr-xr-x 8 root root  1680 Sep  2 06:25 log.bk
    :

これどうやってするの?

答え1

自己解決しました。

mount --bindシンボリックリンクの代わりに使用します。

mount --bind /path/to/somewhare/var/log log

答え2

妥協したものではなく、本当にやりたいことをやりたいのであれば、

  1. 1 つのコマンド ラインとして試してください: mv log log.bk && ln -snf /path/to/somewhere/var/log log.
  2. シングルユーザーモードで試してください。

関連情報