web-dev-qa-db-ja.com

ディレクトリターゲットにリンクしているシンボリックリンクを置き換えます

Tomcatサーバーを7.0.19から7.0.20にアップグレードしたい。

私は以前にln -s Apache-Tomcat-7.0.19 Tomcat7をすでに使用しているため、次のコマンドTomcat7を使用して、新しいターゲットにlinkln -s --force Apache-Tomcat-7.0.21 Tomcat7する必要がありますが、実際には既存のTomcat7/Apache-Tomcat-7.0.21シンボリックリンクを新しいターゲットで置き換える代わりに、シンボリックリンクTomcat7を作成しました。

# mkdir v1 v2
# ln -s v1 v
# ln -s v2 v
# ll v*
lrwxrwxrwx. 1 root root    2 Sep  5 16:02 v -> v1

v1:
total 0
lrwxrwxrwx. 1 root root 2 Sep  5 16:02 v2 -> v2

v2:
total 0

私は manual of ln を確認しました。パラメータを説明するために、ln -s --force Apache-Tomcat-7.0.21 Tomcat7は1番目の形式ではなく3番目の形式を使用すると思います。 1番目と3番目の形式はあいまいです。この場合、シンボリックリンクをどのように置き換えるのですか?

17
LiuYan 刘研

-Tオプション:

$ mkdir v1
$ ln -s v1 foo
$ ls -FlA | grep foo
lrwxrwxrwx 1 phil phil     2 2011-09-05 01:58 foo -> v1/
$ mkdir v2
$ ln -s -T -f v2 foo
$ ls -FlA | grep foo
lrwxrwxrwx 1 phil phil     2 2011-09-05 01:59 foo -> v2/
16
phs

ディレクトリへのシンボリックリンクを置き換えるときは、-nオプションを使用する必要があります。

例:ln -sfn /path/to/directory /target/directory

16
Surya Prabhakar

なぜか

rm Tomcat7
ln -s Apache-Tomcat-7.0.21 Tomcat7

これは古いディレクトリApache-Tomcat-7.0.19には触れず、古いリンクを削除するだけです。その後、lnは新しいものを作成できます。

3
fschmitt