Symbolic Link와 Shortcut의 차이점은 무엇입니까?


답변:


57

중요한 점은 바로 가기가 단지 파일이라는 것입니다. 크기 (작은 크기, 가리키는 곳을 참조)가 있으며 사용하려면 해당 파일 형식을 지원하는 응용 프로그램이 필요합니다.

심볼릭 링크는 파일 시스템 수준이며 모든 것이 원본 파일 간주 됩니다. 응용 프로그램은 심볼릭 링크를 사용하기 위해 특별한 지원이 필요하지 않습니다.


6
나무 산책 명령 (유닉스 유틸리티 같은 것을는 find, tar, du, 등) 않는 기호 링크에 대해 알아야 할 또는 그들이 아주 바보 같은 일을 할 수 있습니다. 예를 들어, 심볼릭 링크를 따르는 블라인드는 파일 시스템에서주기를 생성 할 수 있으며 이는 좋지 않습니다 .
dmckee

9
@dmckee; 어떤 응용 프로그램이 그들을 따라 특정 지원을 필요로하지 않습니다 동안 매우 좋은 점은, 그들은 특정 지원이 필요합니까 하지 그들을 따라가!
Phoshi

예, 사용 하기 위해 지원 이 필요하지는 않지만 알아야 합니다.
dmckee

@Phoshi 정확히 무엇을 의미하는지 "그리고 사용하려면 해당 파일 형식을 지원하는 응용 프로그램이 필요합니다.". 예를 들어 설명해 주시겠습니까?
Geek

6
@Geek : "바로 가기"는 사실상 다른 파일의 파일 경로를 보유하는 파일입니다. 읽을 때 다음에 볼 위치를 알려주는 특수 형식의 파일을 읽습니다. 응용 프로그램이 듣지 않고 단순히 파일을 그대로 읽는 경우에는 따르지 않습니다. 심볼릭 링크는 파일 시스템 수준이며, 데이터에 대한 "진정한"경로를 보유하는 파일 시스템 자체이며, 액세스하려고하면 지정된 데이터를 검색합니다.
Phoshi

20

"심볼릭 링크"는 실제로 기능적인 방식으로 디렉토리 나 파일을 대체하는 역할을 할 수 있으며 일반적으로 Unix / Linux 환경에서 사용됩니다. Windows에서는이 기능이 분명히 지원되지만 실제로 실제로 사용하는 것은 보지 못했습니다.

"바로 가기"는 표시 될 아이콘과 같은 다른 것들과 함께 대상 파일 또는 디렉토리에 대한 참조가있는 일반 파일입니다. Symbolic Link와 달리 DOS에서는 "cd ./shortcut-name"을 사용할 수 없습니다 (Unix / Linux에서는 "cd ./symlink-name"을 사용할 수 있으며 실제 하위 디렉토리처럼 작동합니다).

또한 대부분의 Windows 응용 프로그램에서 파일-> GUI 열기 대화 상자에서 바로 가기를 클릭하면 파일 이름 필드가 해당 바로 가기의 파일 이름으로 채워지고 하위 디렉토리처럼 작동하며 Unix / Linux에서는 GUI가 처리합니다. 파일 이름 필드를 수정하지 않고 경로로서의 심볼릭 링크.


유닉스 / 리눅스에는 파일 (디렉토리 아님)에만 적용되는 "하드 링크"도 있습니다. 이들은 파일 시스템의 다른 파일 이름 항목과 동일한 파일 데이터를 가리키는 파일 시스템의 자연스러운 파일 이름 항목입니다 (동일한 디렉토리에있을 필요는 없음).
Randolf Richardson

4
@Randolf : 1) Windows에도 하드 링크가 있습니다. 2) 셸 바로 가기의 한 가지 기능은 자동 대상 추적입니다. 대상을 이동하면 대부분의 시간 바로 가기가 계속 작동합니다. AD 도메인에서는 컴퓨터를 통해 파일을 추적 할 수도 있습니다 (예 : HD를 다른 곳으로 이동하는 경우). 3) 심볼릭 링크를 사용하면 파일 또는 디렉토리를 대체 위치로 리디렉션하는 것입니다 (교점과 달리 파일을 가리킬 수 있음) ) 및 디렉토리 (하드 링크와 달리), 교차 파일 시스템 (하드 링크와 달리) 및 AFAIK는 네트워크 위치를 가리킬 수도 있습니다.
grawity

늦은 의견이며, shorcuts로 무엇을하고 있는지 잘 모르겠지만 vimrc 파일 바로 가기 대신 기호 링크를 만들어야했습니다 (내가 사용하는 dotfiles 프로젝트를 참조하십시오) 별도의 디렉토리).
making3

10

다른 사람들이 언급했듯이 심볼릭 링크는 파일 시스템 수준에서 사용 가능한 링크 종류 중 하나이므로 응용 프로그램에 투명합니다. 이 문서가 매우 유용 하다는 것을 알게되었습니다 (예 : "자르기 / 언 롤링 / 분할 외부 접합 / 심볼 링크"섹션). 그리고 도구도 멋지게 보입니다. (이것과 mklink를 언급함으로써 더 많은 검색 이이 토론을 찾을 수 있기를 바랍니다.)

바로 가기는 실제 링크가 아닌 파일이며 일반적으로 Windows UI (사용자 인터페이스)에서 해석 할 때 링크로만 이어집니다. 예를 들어 폴더 바로 가기를 두 번 클릭하면 Windows가 다른 위치로 리디렉션합니다. (여기에는 대부분의 응용 프로그램이 호출하는 일반 파일 열기 및 파일 저장 대화 상자가 포함되어 있습니다.) 데스크탑에는이 폴더에 대한 바로 가기가 있습니다. C : \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ G

shorcut의 파일 이름은 C : \ Users \ user5 \ Desktop \ Games.lnk입니다. 비록 "알려진 파일 형식의 확장명 숨기기"를 해제하더라도 Windows는 .lnk 확장명을 억제하고 "게임"만 표시합니다. 그러나 명령 프롬프트를 열고 dir을 수행하면 다음과 같이 표시됩니다.

C:\Users\user5\Desktop>dir "g*"
 Volume in drive C has no label.
 Volume Serial Number is 900...
 Directory of C:\Users\user5\Desktop
03/08/2014  05:30 PM             1,710 Games.lnk
               1 File(s)          1,710 bytes
               0 Dir(s)  246,818,222,080 bytes free

\ D 옵션 (디렉토리 용)을 사용하여 심볼릭 링크로 동등한 것을 만들 수 있습니다.

C:\Users\user5\Desktop>mklink /D mysymlink  "C:\ProgramData\Microsoft\Windows\S
tart Menu\Programs\G"
symbolic link created for mysymlink <<===>> C:\ProgramData\Microsoft\Windows\Sta
rt Menu\Programs\G

C:\Users\user5\Desktop>cd mysymlink

C:\Users\user5\Desktop\mysymlink>

(이것은 폴더 링크이기 때문에 디렉토리 접합 (\ J)도 옵션입니다.)이 콘솔 및 대부분의 응용 프로그램과 마찬가지로 Windows 탐색기를 사용하면 (a) 경로 재지 정하지 않고이 명백한 하위 디렉토리를 "아래로"찾아 볼 수 있습니다. 다른 위치로 "가로"또는 (b) 실패.

바로 가기는 하위 디렉토리처럼 작동하지 않습니다. 이 명령으로 Windows UI의 기본 파일 비헤이비어를 호출 할 수 있습니다 (Windows 탐색기에서 "G"폴더가 열립니다).

C:\Users\user5\Desktop>"Games.lnk"

mysymlink가 실제 하위 디렉토리로 나열되고 (카운트 참조) 그 방법으로 시작할 수없는 반면 :

C:\Users\user5\Desktop>dir "my*"
 Volume in drive C has no label.
 Volume Serial Number is 900...

 Directory of C:\Users\user5\Desktop

03/29/2014  06:08 PM    <DIR>          mysubdir
03/29/2014  05:40 PM    <SYMLINKD>     mysymlink [C:\ProgramData\Microsoft\Windo
ws\Start Menu\Programs\G]
               0 File(s)              0 bytes
               2 Dir(s)  246,816,153,600 bytes free

C:\Users\user57\Desktop>mysubdir
'mysubdir' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\user57\Desktop>mysymlink
'mysymlink' is not recognized as an internal or external command,
operable program or batch file.

반대로 디렉토리를 바로 가기로 변경할 수 없습니다.

C:\Users\user5\Desktop>cd "Games.lnk"
The directory name is invalid.

Windows UI를 사용하면 마우스 오른쪽 단추를 클릭하여 바로 가기 속성을 편집 할 수 있습니다. 또는 다음은 16 진 편집기가 더 잘 표시되지만 .lnk 파일 (이진 데이터)에 실제로 저장된 내용을 정확하게 보여줍니다.

C:\Users\user5\Desktop>notepad.exe "Games.lnk"

실제 하위 폴더에서 메모장을 실행하려고하면 "액세스가 거부되었습니다"오류 메시지와 빈 메모장이 나타납니다.

반대로, 파일 symlink (폴더 symlink가 아님)를 만들면 메모장에서 시작할 수 있습니다. 다음 notepad.exe 호출 중 처음 두 작업과 세 번째 작업이 실패합니다 (이진 gobbledegook .LNK 파일이 열립니다).

C:\Users\user5\Desktop>mklink symplain.txt plain.txt
symbolic link created for symplain.txt <<===>> plain.txt

C:\Users\user5\Desktop>notepad.exe "symplain.txt"

C:\Users\user5\Desktop>notepad.exe "plain.txt"

C:\Users\user5\Desktop>notepad.exe "plain.txt.lnk"

이것은 단지 콘솔이 아닙니다. 메모장에 대한 바로 가기를 내 데스크탑에 복사하고 세 개 각각을 끌어다 놓으면 정확히 같은 동작을 나타냅니다. 두 번 클릭과 달리 끌어서 놓기 때문에 응용 프로그램에서 바로 가기를 해석 할 수 있습니다.

디렉토리 심볼릭 링크와 정션의 차이점에 대해서는 이 토론을 참조하십시오. 다음 은 매우 유용한 설명입니다 .

"Windows가 기호 링크 및 디렉토리 접합을 분석하는 방법의 주요 차이점은 처리가 이루어지는 위치입니다. Windows는 원격 파일 서버의 위치를 ​​참조 할 때도 로컬 시스템에서 기호 링크를 처리합니다. Windows는 원격을 참조하는 디렉토리 접합을 처리합니다. 따라서 서버의 심볼 링크는 다른 클라이언트 볼륨과 같이 클라이언트에서만 액세스 할 수있는 위치를 참조 할 수 있지만 디렉토리 접합은이를 해결할 수 없습니다.이를 해결하기 위해 Windows Vista는 두 파일 모두에 새로운 심볼릭 링크 유형을 지원합니다. 그리고 디렉토리.

"심볼릭 링크의 의미를 이해하기 위해 많은 파일 시스템 명령이 업데이트되었습니다. 예를 들어, Delete 명령은 링크를 따르지 않고 대상을 삭제하지만 대신 링크를 삭제한다는 것을 알고 있습니다. 그러나 모든 응용 프로그램이 아니기 때문에 심볼릭 링크를 올바르게 처리 할 수 ​​있으므로 심볼릭 링크를 만들려면 기본적으로 관리자 만 가지고있는 새로운 심볼릭 링크 만들기 권한이 필요합니다. "


2

"기호 링크는 바로 가기 (.lnk)를 사용하여 원하는 데이터 개체에 대한 투명한 경로를 제공한다는 점에서 바로 가기와 다릅니다. 바로 가기 파일의 내용을 읽고 해석 한 다음 참조하는 파일을 열어야합니다 (예 : 응용 프로그램이 symlink를 사용하면 symlink가 참조하는 데이터 객체에 즉시 액세스 할 수 있습니다 (즉, 1 단계 프로세스). "

출처 : http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html


0

때로는 기능적인 예를 갖는 것이 좋기 때문에이 기능을 어떻게 사용하는지 설명하지 못합니다.

Google 드라이브를 사용하여 파일을 백업하지만 때로는 특정 폴더에 파일을 백업하고 싶습니다 (../google 드라이브로 이동할 수 없습니다). 특히 Windows 10 범용 앱의 경우 구성 파일 등이 appdata에 저장되며 대부분이 위치를 변경할 수 없습니다.

Windows 기본 stikynot 앱을 사용하고 메모를 백업하고 싶기 때문에 여기에 symlink를 사용했습니다. Google 드라이브는 링크를 실제 파일로 인식하고 실제 파일이 여전히 appdata 폴더에있는 동안 파일을 올바르게 동기화합니다.

클라우드에 동기화하고 싶지 않은 프로젝트 폴더와 같은 파일이 로컬에 있으면 바로 가기 (복사, 과거-> 붙여 넣기 바로 가기)를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.