“디렉토리 정션”대“디렉토리 심볼릭 링크”?


392

NTFS의 맥락에서 :

MKLINK [[/D] | [/H] | [/J]] Link Target

/D 디렉토리 기호 링크를 작성합니다. 기본값은 파일 심볼릭 링크입니다.
/H 심볼릭 링크 대신 하드 링크를 만듭니다.
/J 디렉토리 접합을 작성합니다.
Link 새로운 심볼릭 링크 이름을 지정합니다.
Target 새 링크가 참조하는 경로 (상대 또는 절대)를 지정합니다.

  1. 디렉토리 접합디렉토리 심볼릭 링크 와 정확히 동일 하지 않습니까?

    차이 무엇 mklink /D f1 f2mklink /J f1 f2?

  2. "디렉토리"는 실제로는 파일 일 뿐이 므로 디렉토리 심볼릭 링크와 파일 심볼릭 링크의 차이점은 무엇입니까?


답변:


364

접합은 비슷하게 작동하지만 디렉토리 심볼릭 링크와 동일하지 않습니다. 가장 큰 차이점은 원격 서버에서 찾고 있다면,이다 접합이 서버에서 처리 하고 클라이언트에서 처리되는 디렉토리 심볼릭 링크 . 또한 로컬 파일 시스템의 심볼릭 링크가 원격 파일 시스템을 가리킬 수 있다는 사실에 대한 Matthew의 의견을 참조하십시오.

Alice라는 이름의 기계에서 접합점 c:\myjp과 디렉토리 심볼릭 링크 c:\mysymlink를 둘 다 지정한다고 가정 c:\targetfolder합니다. Alice를 사용하는 동안 그들 사이에는 큰 차이가 없습니다. 그러나 Bob이라는 다른 컴퓨터를 사용하는 경우 연결 지점

\\Alice\c$\myjp 가리킬 것이다 \\Alice\c$\targetfolder

하지만 심볼릭 링크

\\Alice\c$\mysymlink 가리킬 것이다 \\Bob\c$\targetfolder

(주의해야 : 기본적으로 시스템이 원격 볼륨에 심볼릭 링크를 따르지 않기 때문에 대부분의 경우에 두 번째 예제가 실제로 발생합니다 중 "파일을 찾을 수 없음" 또는 ". 심볼릭 링크의 유형은 사용할 수 없기 때문에 다음에 할 수 없다" )

디렉토리 기호 링크와 파일 기호 링크의 차이점은 하나는 디렉토리를 나타내고 하나는 파일을 나타냅니다. 링크가 생성 될 때 링크의 대상이 존재하지 않아도되므로 파일 시스템은 응용 프로그램에 디렉토리인지를 알려줄 필요가 있습니다.

또한 심볼릭 링크를 만들려면 특별한 권한 (기본적으로 상승 된 프로세스에만 사용 가능)이 필요하지만 정션을 만들려면 파일 시스템에만 액세스해야합니다.


13
분명히하기 위해서 : 디렉토리 접합과 디렉토리 심볼릭 링크 사이에는 다른 미묘한 기능상의 차이가있을 수 있습니다. 원격 대 로컬은 사용자와는 달리 개발자의 관점에서 가장 분명합니다.
Harry Johnston

12
@MatthewSteeples는 내가 심볼릭 링크를 만드는 경우 있음을 의미합니까 C:\testlink(가리키는 C:\test내 컴퓨터에) 누군가 원격 액세스 내 컴퓨터를 클릭하는 C:\testlink, 그것은으로 해결할 것 C:\test내가 디렉토리 접합을 작성하는 경우 반면에, 자신의 컴퓨터에 C:\testlink(로 가리키는 C:\test내 컴퓨터에서), 누군가가 내 컴퓨터에 원격으로 액세스하여 C:\testlink)을 클릭하면 C:\test컴퓨터로 연결됩니다. 아니면 틀린 길을 얻었습니까?
Pacerier

9
이 맥락에서 @Pacerier는 그렇습니다.하지만 심볼릭 링크를 사용하면 컴퓨터에서 네트워크 공유를 가리키는 폴더를 가질 수 있습니다 (클라이언트 측에서 확인 되었기 때문에). 예 : C : \ MyNetworkShare가 실제로 \\ Alice \ Share를 가리킬 수 있음
Matthew Steeples

6
@MatthewSteeples 그러나 우리도 C:\MyNetworkShare가리키는 디렉토리 접합 을 만들 수 \\Alice\Share없습니까?
Pacerier

8
@Pacerier, 아니요. 접합 지점은 로컬이어야합니다.
Harry Johnston

55

복잡한 대화는 뇌에 해를 끼칩니다.

any MyLink가 기호 링크이고 any MyJunc가 가리키는 접합 이라고 가정하십시오 Target as created.

예 :

mklink /D MyLink C:\T_Dir 대상 디렉토리에 대한 심볼릭 링크 만들기

mklink /J MyJunc C:\T_Dir 대상 디렉토리에 대한 디렉토리 접합을 작성하기위한 것

mklink [/J,/D] [link path] [target path]로컬 컴퓨터에서 구문이 입력 된 위치


 link path    |   target path   |         When accessed ..
              |                 |  (locally)    |    (remotely)
              |                 |               |
C:\MyLink     |   C:\T_Dir      |  C:\T_Dir     |  [leads back to local]
C:\MyJunc     |   C:\T_Dir      |  C:\T_Dir     |  [leads to remote]
              |                 |
\\Svr\MyLink  |   C:\T_Dir      |   C:\T_Dir    |  [leads back to local]
\\Svr\MyJunc  |   C:\T_Dir      |  *** Must create and point local ***
              |                 |
C:\MyLink     |  \\Sv2\T_Dir    |  \\Sv2\T_Dir  |   Error*1
C:\MyJunc     |  \\Sv2\T_Dir    |  *** Error - Must point local ***
              |                 |
\\Svr\MyLink  |  \\Sv2\T_Dir    |  Error*1
\\Svr\MyJunc  |  \\Sv2\T_Dir    |  *** Must create link using target device ***

오류 * 1-로컬 컴퓨터의 원격 기호 링크에 대한 액세스를 차단 해제하면이 기능은 작동하지만 차단되지 않은 로컬 컴퓨터에서만 작동합니다.


3
너무 이상하다. 상대 심볼릭 링크조차도 원격으로 작동하지 않습니다. 예를 들어 디렉토리를 만듭니다 d:\_tmp\data. 다음과 같이 링크를 작성하십시오 d:\_tmp>mklink /d data-link data. 원격 사용자는 d:\_tmp모든 하위 폴더에 대한 전체 액세스 권한을 갖지만 여전히 열 수는 없습니다 d:\_tmp\data-link.
Nux

4
이는 심볼릭 링크가 클라이언트 측에서 평가 될 때 서버가 아닌 클라이언트의 d : \ _ tmp \ data를 가리 키기 때문입니다.
apraetor

이상한 이유가 분명하다고 생각합니다. 그러나 적어도 상대 심볼릭 링크의 경우 @Nux에 이상하다는 데 동의합니다.
Jon Coombs

Complex talk hurts brain -- I like charts이 문장과 차트도 좋아합니다.
누가 복음

46

심볼릭 링크는 더 많은 기능을 가지고 있지만 정션은 제한으로 인해 거의 레거시 기능인 것처럼 보이지만 이러한 제한의 보안 영향은 특히 심볼릭 링크보다 정션이 선호되는 이유입니다. 원격 타겟팅은 심볼릭 링크의 기능을 향상 시키지만 보안 프로필을 높이는 반면, 정션은 로컬 경로로 제한되어 있기 때문에보다 안전한 것으로 간주 될 수 있습니다 . 따라서 로컬 링크를 원하고 절대 경로로 살 수 있다면 접합점을 사용하는 것이 좋습니다. 그렇지 않으면, 추가 된 능력에 대한 상징적 링크를 고려하십시오.

여기에 이미지 설명을 입력하십시오

** 속도 / 복잡성의 차이에 대한 진술은 NTFS 재분석 지점 에 대한 Wikipedia 항목 의 확인되지 않은 진술에서 비롯된 것 입니다.


다른 NTFS 링크 비교

여기에 주제에 대한 다른 비교가 있지만, 위에 나열된 이점을 나열하지 않기 때문에 정션을 고려할 때 오해의 소지가 있습니다.

여기에서 가져옴 (좋은 입문서)

여기에 이미지 설명을 입력하십시오

에서 MKLink에 SS64 페이지

여기에 이미지 설명을 입력하십시오


용어에 대한 의견

접합은 심볼릭 링크입니다

정션과 심볼릭 링크는 처리 방법의 앞서 언급 한 차이점을 제외하고는 실제로 동일한 방식으로 (재분석 지점) 동일한 작업을 수행합니다. 실제로 기술적으로 Junction은 심볼릭 링크이며, 설명서에서 Junction을 심볼릭 링크라고 할 수도 있습니다 . 그래서 그것은 용어에 관해 알아야 할 것입니다.

NTFS

OP가이를 지정하더라도 "기호 링크"는 NTFS에만 국한되지 않는 매우 일반적인 용어임을 지적 할 가치가 있습니다. 구체적으로,이 비교는 NTFS Junctions와 NTFS Symbolic Links에 대한 것입니다.


3
Junctions vs Symbolic Links의 처리 속도를 테스트 한 사람이 있습니까?
1000Gbps

찬반 양론 차트가 매우 도움이되었습니다. 감사합니다!
GordonM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.