NTFS 연결 지점과 심볼릭 링크의 차이점은 무엇입니까?


140

높은 수준에서 NTFS 정션 포인트심볼릭 링크 의 유일한 차이점은 정션은 디렉토리 만 가능하고 SymLinks는 파일을 대상으로 할 수 있다는 것입니다.

둘 사이에 다른 차이점이 있습니까?

(참고로, 나는 이미이 질문을 보았고 내가 찾고있는 것이 약간 다릅니다.이 질문은 찬반 양론자를 찾고 있으며 기술적 차이점을 찾고 있습니다)

답변:


88

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

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

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


다른 NTFS 링크 비교

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

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

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

에서 MKLink에 SS64 페이지

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


용어에 대한 의견

접합은 재분석 지점입니다 (심볼릭 링크로 설명 될 수 있음)

NTFS 정션과 NTFS 심볼릭 링크는 처리 방법에 대한 앞서 언급 한 차이점 외에는 실제로 동일한 방식으로 (분석 지점) 동일한 작업을 수행합니다. 실제로 기술적으로 Junction은 단어의 일반적인 의미에서 "기호 링크"이며 때로는 문서에서 Junction을 기호 링크라고 할 수 있습니다 . 이러한 경우 "기호 링크"는 접합과 다른 NTFS 기호 링크를 의미하지 않습니다 (아래 참조).

NTFS

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


정션 포인트와 심볼릭 링크는 모두 재분석 포인트이지만, 정션 포인트는 심볼릭 링크가 아닙니다! 아, 그리고 테이블도 하나의 카운트에 잘못되었습니다. 접합점의 대상은 작성시 존재해야하지만 나중에 제거 될 수 있습니다.
0xC0000022L

3
@ 0xC0000022L 그렇습니다. NTFS 연결이 NTFS 기호 링크가 아니라고 말하는 것이 맞습니다. 내 말이 어떻게 잘못 이해되는지 알 수 있습니다. 명확히하기 위해 편집 하겠지만 요점은이 문맥에서 "기호 링크"는 Junctions가 속하는보다 일반적인 "기호 링크"아이디어의 특정 구현 인 NTFS 기호 링크를 의미한다는 것입니다. 내가 게시 한 링크를 따라 갔습니까? NTFS 정션이 NTFS 심볼릭 링크라는 말은 아니지만 "심볼릭 링크"라는 용어를 사용하여 정션을 설명 할 수 있습니다.
u8it

공평하게, 개념을 언급 할 때 그것에 대해 생각하는 한 가지 방법 일 수 있습니다. 그러나 실제로 재분석 지점이라는 용어는 개념이 개념을 집으로 가져 왔다고 생각합니다. NT 객체 관리자에서 진행되는 일을 훨씬 더 많이 설명하고 있기 때문에이 개념은 예를 들어 유닉스에서 사용되었던 상징적 링크 (일반 파일이있는 곳)를 뛰어 넘습니다. 특별한 깃발로). 그리고 예, 접합점은 "디렉토리의 심볼릭 링크"라고 설명되어 있습니다.
0xC0000022L

@ 0xC0000022L 또한 테이블이 잘못되었다는 언급이 없습니다. "존재하지 않는 대상을 가리킬 수 있습니다"특성을 참조하고 있습니까? 그리고 접합을 처음 만들 때 이것이 잘못되었다고 말하고 있습니까? 특정 환경 (Windows XP 또는 보안 설정 때문일 수 있음)에서 확실하다고 생각되면 경험을 바탕으로하지만 문서 (및 Windows 10에서 방금 확인)에서 접점을 작성할 수 있습니다. 생성시에도 존재하지 않는 경로를 항상 대상으로합니다.이를 제한하는 보안 설정이있을 수 있습니다.
u8it

접합은 레거시가 아닙니다. 심볼릭 링크가 아닌 마운트 포인트 (바인드 / 볼륨)를 구현합니다. 열린 경로에서 경로를 구문 분석 할 때 시스템은 마운트 지점을 통과하는 상대 심볼릭 링크를 평가하기 위해 통과 된 접합을 기억합니다. 이러한 순회는 일반 디렉토리 인 것처럼 정션을 처리해야하지만 심볼릭 링크는 대상 경로로 구문 분석됩니다. 예를 들어 "C : \ junction"및 "C : \ symlink"는 모두 "E : \ spam"을 대상으로하고 상대 심볼릭 링크 "E : \ spam \ eggs.txt"는 ".. \ eggs.txt"를 대상으로합니다. 그런 다음 "C : \ junction \ eggs.txt"는 "C : \ eggs.txt"로, "C : \ symlink \ eggs.txt"는 "E : \ eggs.txt"로 확인됩니다.
Eryk Sun

35

차이점에 가장 유용한 곳은 다음과 같습니다.

http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx

http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx

가정 : Symlink는 Unix에서 Hardlink에 있으므로 Windows에서 Junction에 연결됩니다.

http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link

Windows 7 및 Windows Vista는 명령 행 유틸리티 mklink를 사용하여 파일 및 디렉토리 모두에 대한 기호 링크를 지원합니다. 연결 지점과 달리 기호 링크는 파일 또는 원격 SMB (Server Message Block) 네트워크 경로를 가리킬 수도 있습니다. 또한 NTFS 기호 링크 구현은 파일 시스템 간 링크를 완벽하게 지원합니다. 그러나 호스트 간 심볼릭 링크를 사용하려면 원격 시스템에서도이를 지원해야하므로 Windows Vista 이상의 Windows 운영 체제에 대한 지원이 효과적으로 제한됩니다.

http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

Windows에서 만든 심볼릭 링크는 디렉토리 접합과 매우 유사하지만 디렉토리 접합과 달리 파일 또는 원격 네트워크 파일 또는 디렉토리를 가리킬 수 있습니다. 타겟은 심볼릭 링크 위치에 대한 경로, 또는 현재 볼륨 또는 다른 경로의 절대 경로로 정의 될 수 있습니다. 또한 파일에 대한 기호 링크는 디렉토리에 대한 기호 링크와 다르며 대상은 정의와 일치해야합니다.



14
허용 된 답변은 이미 세 살이지만 인용 된 가정에서 암시 된 것처럼 NFTS 접합점이 Unix의 하드 링크와 비교되지 않는다는 것을 지적하고 싶습니다. 접합점은 파일을 참조 할 수 없지만 하드 링크는 참조 할 수 있기 때문에 이는 분명해야합니다. NTFS는 또한 정션과는 다른 하드 링크를 지원하며, 유닉스 하드 링크와 거의 비슷합니다.

@elgonzo 전적으로 동의합니다. AFAIK 유닉스 하드 링크는 파일 만 참조 할 수 있으므로 NTFS 디렉토리 접합처럼 보이지 않습니다.
Franklin Yu

20

기능적으로 창에서 생성 된 후에는 실제 차이가 없습니다. 그러나 그들이 할 수있는 일에있어서 그들 사이에는 상당한 차이가 있습니다. 정션은 동일한 드라이브 또는 다른 드라이브에있는 폴더에 대한 링크 작성에만 사용할 수 있지만 해당 드라이브가 로컬 시스템에있는 경우에만 사용할 수 있습니다 (네트워크를 통해 폴더에 대한 정션 링크를 작성할 수 없음). 그러나 동일한 제한이 없습니다. 심볼릭 링크를 사용하여 파일 또는 폴더에 연결할 수 있으며 해당 파일 또는 폴더는 동일한 시스템 (같은 드라이브 또는 다른 드라이브) 또는 네트워크 공유에있을 수 있으며 상대 위치 심볼릭 ( "\\ system2)을 사용할 수 있습니다 \ foldera \ file.txt ","d : \ foldera \ file.txt ","\\ system2 \ foldera ","d : \ foldera "또는"d : \ foldera \ folderb .. "

요약 : 정션 포인트는 로컬 시스템의 폴더로만 제한되는 반면 Symbolic Links는 UNC 경로를 통해 또는 로컬 시스템에서 해당 위치를 지정하는 방법이 더 다양하게 액세스 가능한 폴더 또는 파일에 대한 링크를 작성할 수 있습니다. Symbolic Links는 기본적으로 Junction Points와 Hard Links에 대한 다목적 대체품입니다. 또한 Symbolic Links는 크로스 플랫폼 UNC 경로 링크를 만들 때 Unix 및 Linux와 호환됩니다.

바라건대, 이것은 당신의 질문에 만족스럽게 대답합니다. 인쇄상의 오류를 수정하도록 편집되었습니다.


10

링크 셸 확장 ( http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html )은 많은 종류의 링크를 만들고 볼 수있는 훌륭한 도구입니다. 또한 훌륭한 문서가 있습니다.

[전체 설치시 고급 링크를보고 있으면 새 속성 탭이 추가됩니다. 또한 다양한 링크 유형에 대한 아이콘 오버레이 화살표를 추가합니다. 표시되지 않으면 FAQ 섹션으로 스크롤하십시오. Windows는 13 개의 오버레이 만 지원합니다. 그는 레지스트리 해결 방법을 보여줍니다. 정보 유용성의 예 : 폴더라고 생각한 것에 대한 권한을 얻지 못했지만 실제로는 시스템에서 제공하는 Junction Link가 이전 버전의 Windows와의 호환성을 위해 사용되었습니다.]

정션 및 기호 링크는 로컬 시스템의 디렉토리에 대해 작성 될 때 본질적으로 동일하게 작동합니다.

하나:

그들은 네트워크를 통해 다르게 행동합니다. 이 링크는이 동작을 설명합니다 : /superuser/343074/directory-junction-vs-directory-symbolic-link

Junction Links를 "위치에 대해 OS를 속이는 바로 가기"라고 생각하면 사용법에 대한 실질적인 유사점과 그 점을 깨뜨릴 수 있습니다. 주요 차이점은 심볼릭 링크 또는 정션을 복사하면 포인터가 포함 된 파일 만 바로 가기와 같이 대상을 복사한다는 것입니다. 바로 가기와 마찬가지로 대상 파일 / 폴더를 제거하지 않고 기호 또는 정션 링크를 삭제할 수 있습니다. [하드 링크, 파일은 휴지통을 포함하여 마지막 링크를 제거해야만 삭제됩니다. 하드 링크의 대상 또는 참조 수를 보려면 이러한 링크 중 하나에 대한 LSE의 속성 태그를 확인하십시오.]

하드 링크 또는 바로 가기는 전체 대상 끊기 또는 복사와 같은 부작용없이 이동할 수있는 유일한 링크 유형입니다. 대상을 이동하면 링크가 끊어 지지만 속성 탭 (LSE로 표시됨)에서 쉽게 업데이트하거나 LSE를 사용하여 복잡한 경우 다시 만들 수 있습니다.

심볼릭 링크를 만들려면 관리자 권한이 필요하지만 정션에는 필요하지 않습니다. Junctions의 광범위한 내부 OS 사용과 더불어 Windows는 직관적이고 예상 된 방식으로이를 처리 할 수 ​​있습니다. [시스템 폴더의 예상치 못한 부작용 (Win 10 사용 경험)에 대해 어느 정도주의하십시오.]

[링크 셸 확장의 일부 백업 관련 기능은 매우 유용합니다. 간단히 말해, 보류중인 백업을 위해 표준 폴더에 여러 유형의 업데이트 가능한 심볼릭 링크 구조를 만들 수 있습니다.]


그리고 Link Shell Extension은 훌륭한 도구처럼 보입니다. ln.exe 라는 관련 경량 유틸리티 도 있습니다. 둘 중 하나를 사용하지 않더라도 웹 사이트의 간단한 사용자 안내서를 읽는 것만으로도 많은 것을 배울 수 있습니다.
u8it

2016 년 4 월 2 일에 편집 한 내용이 덜 명확하다고 생각합니다. "이러한 파일과 '바로 가기'파일의 주요 차이점은 포인터가 포함 된 파일이 아니라 대상을 복사한다는 것입니다. 바로 가기를 복사하면 어떻게됩니까? ")
Jon Coombs

4

Vista에서는 최근에 Windows에서 기호 링크가 도입되었습니다.

심볼릭 링크는 기존 NTFS "Reparse Point"기술의 대안으로 간주되어서는 안됩니다.

Microsoft는 Symbolic 링크의 유일한 목적이 Unix와 더 호환되는 것이라고 설명합니다.

MSDN : " 기호 링크는 UNIX와의 마이그레이션 및 응용 프로그램 호환성을 지원하도록 설계되었습니다. Microsoft는 기호 링크를 UNIX 링크처럼 작동하도록 구현했습니다. "

Vista는 자체 기능을 위해 링크를 사용하는 Firt OS이기도합니다. 레거시 폴더 이름과 호환되도록 C:\Documents and Settings이제에 대한 링크 C:\Users입니다.

흥미롭게도 Vista는 Symbolic 링크를 소개하지만이 " Documents and Settings"트릭은 실제로는 오래된 오래된 접점입니다.


2
이 답변은 심볼릭 링크와 정션의 차이점에 대해 아무 말도하지 않습니다. (따라서 나는 이것이
실제로이

Windows Vista부터 Symbolic link가 Junction을 대체합니다 (알다시피 둘 다 재분석 지점 임)
Aravind

2

u8it의 탁월한 답변 외에도 :

Windows 10의 Windows 파일 탐색기 에서 동작의 차이점에 관심이있는 사람이있는 경우 :

대상 디렉토리로 끌어서 놓기 :

  • symbolic link: symbolic link대상 디렉토리로 이동
  • junction: original directory대상 디렉토리로 이동

마우스 오른쪽 버튼 클릭 + 속성 :

  • symbolic link: 단축키 속성을 표시합니다
  • junction: original directory폴더 속성을 보여줍니다

왼쪽 (디렉토리 트리) 에서 왼쪽 마우스 클릭 :

  • symbolic link: 선택 original directory
  • junction: 선택 junction

심볼릭 링크를 만들려면 관리자 권한이 필요하지만 정션에는 필요하지 않습니다.
Jinjinov

Windows 10 버전 10.0.17134.1130 : 탐색기에서 접합을 이동하면 원래 디렉토리의 컨텐츠 만 이동합니다. 트리에서 심볼릭 링크를 마우스 왼쪽 버튼으로 클릭해도 원래 디렉토리가 선택되지 않습니다.
SalgoMato
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.