디렉터리 대상에 대한 기호 링크 바꾸기

디렉터리 대상에 대한 기호 링크 바꾸기

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매개변수를 해석하기 위해 첫 번째 형식 대신 세 번째 형식을 사용하는 것 같습니다. 첫 번째 형태와 세 번째 형태 사이의 경계는 매우 모호합니다. 그렇다면 이 경우 심볼릭 링크를 어떻게 교체합니까?

답변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은 새로운 것을 만들 수 있습니다.

관련 정보