OS X에서 심볼릭 링크를 변경하는 방법은 무엇입니까?


20

을 사용하여 새 심볼을 삭제하거나 만들지 않고 심볼릭 링크가 가리키는 위치를 어떻게 변경 ln -s "/path/to/point/to" "/path/where/symlink/is"합니까?

Java의 "Current"symlink에 대해 시도했을 때 Java는 작동하지 않을 것입니다 (최소한 명령 줄에서 'Segmentation Fault'라고 말함). 기계 (하지만 나중에 /Applications/Utilities/Java Preferences.app현재 Java 버전을 변경 하는 데 어쨌든 사용해야한다는 것을 알았습니다 ).

답변:


8
mkdir /path/where/newsymlink
ln -s /path/to/point/to /path/where/newsymlink/is
mv /path/where/newsymlink/is /path/where/symlink/
rmdir /path/where/newsymlink

그러나 Java 기본 설정 유틸리티는 단순한 기호 링크 이상을 변경합니다. 이를 사용하여 Java 버전이 변경되도록해야합니다.


mv 명령은 그냥 이름을 바꾸지 않습니까?
mk12

.. 새 심볼릭 링크를 이전 링크가 가리키는 폴더로 이동시킵니다.
mk12

첫 번째 명령은 원하는 위치를 가리키는 심볼릭 링크를 만들고 두 번째 명령은 기존 위치에 대한 기존 포인터를 새 위치에 대한 포인터로 바꿉니다. mv는 원자 적이므로 symlink는 항상 존재합니다.
mark4o

.. 그러나 여전히 작동하지 않습니다. 새 포인터가 이전 폴더가 가리키는 폴더로 이동합니다.
mk12

/path/where/symlink/is변경하고있는 심볼릭 링크입니다. 이 명령을 사용하면을 가리 키도록 변경됩니다 /path/to/point/to. 원래 심볼릭 링크가 가리키는 폴더는 전혀 손대지 않습니다.
mark4o

29
ln -hfs newlocation existinglink

또는

ln -nfs newlocation existinglink

새로운 위치를 가리 키도록 기존 링크를 변경합니다

(-n과 -h는 작동에서 동일합니다)

'남자 ln'에서

-h target_file 또는 target_dir이 기호 링크 인 경우에는 따르지 마십시오. -f 옵션을 사용하면 디렉토리를 가리키는 심볼릭 링크를 대체 할 때 가장 유용합니다.

-f 대상 파일이 이미 존재하면 링크를 해제 할 수 있도록 링크를 해제하십시오. -f 옵션은 이전의 모든 -i 옵션보다 우선합니다.

-s Creae 심볼릭 링크


-nfs버전은 Linux에서도 작동하므로 관심이 있다면 더 이식성이 뛰어납니다.
Cromax

10

시험:

unlink /path/to/current/link
ln -s /path/to/target /path/to/symbolic/link

1
매버릭스가 장착 된 2013 년 말 MacBook Pro에서 두 가지 매개 변수를 전환해야했습니다. ln -s / path / to / symbolic / link / path / to / target
Marius Waldal

1

ln 명령을 사용하면 링크를 변경할 수 없으며 새 링크 만 만들 수 있습니다.


0

링크를 변경하기 전후에 링크 및 대상에 대한 권한을 비교 했습니까? 적절한 chown 및 chmod 명령으로 후속 작업을 수행해야 할 수도 있습니다.


글쎄, 나는 그것을 바꾸는 방법조차 모른다. 그리고 나는 chown과 chmod가 무엇을하는지 모른다.
mk12

2
chown은 파일 및 / 또는 디렉토리의 소유권을 변경합니다. chmod는 파일 및 / 또는 디렉토리의 권한을 변경합니다. 이것들은 거의 모든 유닉스 플랫폼에서 표준입니다. 여기에 각각을 설명하기에 너무 자세한 내용이 있으므로 자습서마다 인터넷 검색을 권장합니다. "man chown"또는 "man chmod"를 수행하여 명령의 실제 매뉴얼을 읽을 수도 있습니다 (매뉴얼에서 나오려면 q를 누르십시오).
09 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.