我想将tomcat服务器从7.0.19升级到7.0.20。
我以前已经这样ln -s apache-tomcat-7.0.19 tomcat7
做过,所以现在我需要关联 tomcat7
使用以下命令到新目标ln -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
我检查了的手册ln
,我认为ln -s --force apache-tomcat-7.0.21 tomcat7
使用第3种形式而不是第1种形式来解释参数。第一种形式和第三种形式之间的界限非常模糊。那么在这种情况下如何替换符号链接呢?
答案1
在替换目录的符号链接时,我们应该使用-n
选项。
例子:ln -sfn /path/to/directory /target/directory
答案2
您想要的-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/
答案3
为什么不只是
rm tomcat7
ln -s apache-tomcat-7.0.21 tomcat7
?
这不会触及旧目录 apache-tomcat-7.0.19,而只是删除旧链接。然后 ln 就可以创建新的了。