심볼릭 링크의 대상을 변경할 수 없습니다


21

링크 또는 이전 대상을 제거하지 않고 기존 기호 링크의 대상을 변경하고 싶습니다.

이전에 다음과 같은 디렉토리에 대한 심볼릭 링크를 만들었습니다.

$ cd /usr/lib/jvm/

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07

$ sudo ln -s jdk1.7.0_04 oracle-jdk-7

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

이제 다른 디렉토리에 연결하기 위해 이것을 변경하고 싶습니다.

$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7

그러나 오류없이 작동하지 않습니다.

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:36  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

어떤 도움?


어쩌면 이것은 작은 세부 사항 일 수도 있지만 실제로 실행 한 명령은입니다 sudo ln -s jdk1.7.0_04/ oracle-jdk-7. 뒤에 슬래시를 적어 둡니다 04.
wjandrea

답변:


31

디렉토리에 대한 심볼릭 링크를 만들려면 'n'옵션을 사용하십시오.

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY 링크 대상의 이름입니다.
  • LINK_NAME 링크의 이름입니다.
  • f옵션은 기존 링크를 바꾸는 것을 의미합니다 (즉, 먼저 삭제).

n옵션은 조금 복잡하다. 귀하의 명령이 링크를 바꾸지 않고 링크를 통해 jdk1.7.0_07디렉토리 내부에 링크를 만들었을 것입니다. 그렇다면 혼동을 피하기 위해 링크를 삭제해야합니다.jdk1.7.0_04oracle-jdk-7


당신은 또한 옵션을 사용할 수 있습니다 T, 즉ln -sfT TARGET LINK_NAME
wjandrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.