Chcę zaktualizować serwer tomcat z wersji 7.0.19 do wersji 7.0.20.
Już ln -s apache-tomcat-7.0.19 tomcat7
wcześniej, więc teraz muszę połączyć się tomcat7
z nowym celem za pomocą następującego polecenia ln -s --force apache-tomcat-7.0.21 tomcat7
, ale to nie działa tak, jak się spodziewałem: utworzyło dowiązanie symboliczne tomcat7/apache-tomcat-7.0.21
zamiast zastąpić istniejące tomcat7
dowiązanie symboliczne nowym celem.
Przykład
# 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
Sprawdziłem instrukcjęln
, myślę, że ln -s --force apache-tomcat-7.0.21 tomcat7
używam 3. formularza zamiast 1. formularza do wyjaśnienia parametrów. To jest tak niejednoznaczne między pierwszą i trzecią formą. Jak w takim przypadku zastąpić link symboliczny?
Podczas zastępowania dowiązań symbolicznych do katalogów powinniśmy skorzystać z
-n
opcji.Przykład:
ln -sfn /path/to/directory /target/directory
źródło
-
i odstępy przed każdą flagą, jaką mają.Dlaczego nie tylko
?
Nie dotknie to starego katalogu apache-tomcat-7.0.19, ale po prostu usunie stary link. Następnie mogę utworzyć nowy.
źródło
cp -f
/mv -f
które używają jednego polecenia do wykonania operacji zastępowania, więc szukam rozwiązania dla pojedynczego polecenia .