디렉토리 대상에 연결된 기호 링크를 교체하십시오.


17

Tomcat 서버를 7.0.19에서 7.0.20으로 업그레이드하고 싶습니다.

ln -s apache-tomcat-7.0.19 tomcat7이전에는 이미 다음 명령을 사용하여 새 대상 에 연결 해야 하지만 예상 한대로 작동하지 않습니다. 기존 심볼릭 링크를 새 대상 으로 바꾸는 대신 심볼릭 링크 를 만들었습니다 .tomcat7ln -s --force apache-tomcat-7.0.21 tomcat7tomcat7/apache-tomcat-7.0.21tomcat7

# 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했는데 매개 변수를 설명하기 위해 첫 번째 양식 대신 세 번째 양식을 사용 한다고 생각 합니다. 그것은 첫 번째와 세 번째 양식 사이에 너무 모호합니다. 그렇다면이 경우 심볼릭 링크를 바꾸는 방법은 무엇입니까?

답변:


16

당신은 -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/

고마워요, 정확히 내가 필요한 것입니다. 부끄러운 일 이지만 도움 이 되는 옵션 옵션 이 있지만 정확히 무엇을하는지 모르겠습니다.
LiuYan 刘 研

16

디렉토리에 대한 심볼릭 링크를 바꾸는 동안 사용해야합니다 -n 옵션 .

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


1
이것이 정답입니다. 문제를 해결하고 하나의 라이너 / 컴팩트합니다.
까지

1
수락 된 답변은 질문을 해결하고 하나의 라이너입니다 ... 실수하지 않으면 똑같이 작을 수 있습니다. 나는 -모든 깃발 앞에 별도의 공간 을 가질 필요가 없다고 생각합니다 .
ArtOfWarfare

3

왜 안돼

rm tomcat7
ln -s apache-tomcat-7.0.21 tomcat7

?

이것은 이전 디렉토리 apache-tomcat-7.0.19를 건드리지 않고 단지 이전 링크를 삭제합니다. 그러면 ln은 새로운 것을 만들 수 있습니다.


감사! 현재 스크립트 에서이 작업을 수행 했지만 단일 명령을 사용하여 덮어 쓰기 작업을 수행하는 것과는 달리 cp -f/ 단일 명령 솔루션을mv -f 찾고 있습니다 .
LiuYan 刘 研
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.