Я хочу обновить сервер 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-й и 3-й формой. Так как же заменить символическую ссылку в этом случае?
При замене символических ссылок на каталоги мы должны использовать
-n
опцию.Пример:
ln -sfn /path/to/directory /target/directory
источник
-
и пробел перед каждым флагом, как у них.Почему не просто
?
Это не коснется старого каталога apache-tomcat-7.0.19, а просто удалит старую ссылку. Тогда я могу создать новый.
источник
cp -f
/mv -f
которые используют одну команду для выполнения операции перезаписи, поэтому я ищу решение для одной команды .