루트에 대한 심볼릭 링크를 만드는 방법


13

/홈 디렉토리 의 루트 ( ) 폴더에 대한 심볼릭 링크를 만들고 싶습니다 . 그러나 이것을 시도하면

~$ ln -s /
ln: failed to create symbolic link './': File exists

물론 노틸러스 Ctrl+를 사용 하여이 작업을 수행 할 수 D있으므로 가능하다는 것을 알고 있습니다.

터미널을 어떻게 사용합니까?


이것은 좋은 질문이지만, 왜 당신이 이것을 원하는지 알고 싶습니다. 입력하기가 너무 어렵 cd /습니까? 아니면 계속 반복해서 반복되는 링크를 만들고 싶습니까? 예 : cd root/home/terrance/root/home/terrance/root/home/terrance/root. . . 등
테 런스

실제로는 그렇지 않습니다. 루트에 연결할 필요없이이 작업을 수행 할 수 있습니다. 실제로, 나는 왜 당신이 그것을 할 수 없는지 궁금했습니다
Ankur S

그럴 수 있지. 내 질문에 답변 해 주셔서 감사합니다. =)
Terrance

답변:


17

링크 이름이 없습니다. 다음과 같아야합니다.

cd ~
ln -s / root

그러면 홈 디렉토리에 root라는 심볼릭 링크가 만들어집니다. 올바른 사용법은 다음과 같습니다.

ln -s <target> <link-name>

오류 메시지는 ./항상 존재하며이 이름으로 링크를 작성할 수 없다는 것입니다 . 잘못된 링크를 방지하기 위해 두 매개 변수와 함께 ln명령 2 를 사용하는 것이 가장 좋습니다 .

보낸 사람 man ln:

개요

(1st form) ln [OPTION]... [-T] TARGET LINK_NAME  
(2nd form) ln [OPTION]... TARGET  
(3rd form) ln [OPTION]... TARGET... DIRECTORY  
(4th form) ln [OPTION]... -t DIRECTORY TARGET...  

기술

첫 번째 양식 TARGET에서 이름 으로 링크를 작성하십시오 LINK_NAME. 두 번째 양식 TARGET에서 현재 디렉토리에 대한 링크를 작성하십시오 . 세 번째 및 네 번째 양식에서에 각각 TARGET에 대한 링크를 작성하십시오 DIRECTORY. 기본적으로 하드 링크, 만들기 와 심볼릭 링크를 --symbolic. 기본적으로 각 대상 (새 링크의 이름은) 이미 존재하지 않아야 4 . 하드 링크를 만들 때는 각각 TARGET존재해야합니다. 심볼릭 링크는 임의의 텍스트를 보유 할 수 있습니다. 나중에 해결되면 상대 링크는 상위 디렉토리와 관련하여 해석됩니다.

긴 옵션에 대한 필수 인수는 짧은 옵션에도 필수입니다.

옵션

최종 매개 변수 인 <link-name>기본값은 대상의 마지막 부분입니다. 따라서 대상이 지정되지 않으면 /path/dir링크 이름이 기본값이 dir됩니다. 1 그리고 당신은 예를 들어 작성하는 경우 ~/etcmkdir ~/etc다음 실행 ln -s /etc~이름 / 디렉토리가 이미 존재하기 때문에이 링크를 만들 수 없습니다.

그리고 홈 디렉토리에 생성 된 링크를 볼 수 있습니다 (여기서는 물론 원하는 이름을 자유롭게 지정할 수 있습니다).

$ ls -l ~/root
lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /

1 지적 주신 @thomasrutter 에게 감사합니다 .
(2) 참조 man linkman symlink
3 덕분에 @steeldriver을 설명하는 예를 제공.
4 질문과 관련이있는 텍스트를 지적하기 위해 강조된 부분.


내 유일한 의문은 왜 명령이 ln -s /etc작동 해야 하지만 이것과는 다른 것입니까? 답변 주셔서 감사합니다
Ankur S

디렉토리 이름이 /있거나 루트이거나 경로 구성 요소 일 수 있으므로 프로그램이 현재 의미를 알 수 없으므로 작성됩니다. /etc명백한 구별 가능한 경로입니다.
Videonauth

7
@AnkurSonawane ./항상 존재 하기 때문에 - ./etc가능성이 낮습니다. 시험mkdir etc먼저 다음 ln -s /etc– 또한 다음 을 얻을 것입니다File exists
steeldriver

8
최종 매개 변수 인 link-name은 생략 된 경우 기본적으로 대상의 마지막 부분으로 설정됩니다. 따라서 대상이 지정되지 않으면 /some/dir링크 이름이 기본값이 dir됩니다. /그러나 대상이 단지 이면 작동하지 않습니다.
토마스

나는 이것이 매우 중요하지만 @steeldriver의 설명이 File Exists출력이 주어지면 더 합리적으로 들린다 고 생각하지 않습니다 . 이것이 변질 된 사건이기 때문에 그것은 중요하지 않다
Ankur S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.