컴퓨터 문제 해결 기록

mklink 본문

Windows

mklink

구운소금. 2012. 9. 16. 22:00

윈도우 비스타와 7부터 mklink 라는 콘솔명령어가 지원되기 시작하였고, ssd의 보급이나, 파일관리를 체계적으로 하기 위해서는,  파일들을 분산관리해야 할 필요성이 높아졌다. 그에 맞춰 mklink 역시 활용팁도 많이 올라오고 있다.


본인 역시 많은 부분에서 mklink 를 활용하면서 그 단점도 보이기 시작하였는데, 소프트웨어 자체설정에서 바꿀 수 있는 폴더는 어떻게든 설정상에서 바꾸는 것이 좋다는 것이다. 예를 들면 itunes 의 백업폴더를 심볼릭 링크로 옮겼을 때 백업은 잘 되었지만, 후에 복원하려고 할 떄 오류가 자주 발생한다던가 또는 dropbox 같은 자동 동기화 폴더 안에 심볼릭 링크가 있는 경우, 최초 동기화 체크 부분에서만 자동으로 동기화 되고, 이후 동기화상태에서는 심볼릭 링크의 파일들은 수정 여부가 자동으로 동기화 되지 않았다. 


어찌되었든, 그럼에도 불구하고, mklink 는 자료를 효율적이고 다방면에서 활용, 저장 하는데 있어서는 매우 유용한 도구이다. 그래서 mklink를 적극 활용하려고 옵션에 대해 자세히 조사해 보았으나, mklink의 옵션에 대해 정확히 설명을 하는 자료가 매우 드물었다. 그래서 직접 이해하기 쉬운 자료 등을 찾아서 정리해 보았다.




심볼릭 링크 (Symbolic Link) -

옵션없이 mklink a.txt  b.txt 같이 사용하면 기본적으로 심볼릭 링크가 생성된다. 심볼링 링크란 일종의 바로가기 아이콘의 진화형이라고 생각하면 된다. a.txt 파일을 열면 b.txt 와 똑같은 내용이 열리게 되는 것이다. 당연히 바로가기 파일을 삭제하면, 원본은 살아있지만, 원본파일을 지우면, 바로가기 파일도 내용이 삭제된다.



/D 디렉토리 심볼릭 링크 (Driectory Symbolic Link) -

기본적으로 심볼릭 링크와 같지만, 디렉토리를 심볼릭 링크화 시킬 때 사용하는 옵션. 보통은 주로 이 옵션이 활용되고 있다. SSD의 운영체제와 프로그램등을 설치하고, 비대해져 가는 부속 설정 파일들을 분산시키고자 할 때, 다른 하드드라이브로 폴더를 복사하고, SSD에는 디렉토리 심볼릭 링크를 만들면 된다. 


mklink /d c:\ssd\data(새로 만들위치)  d:\data(실제 자료가 있는 위치)



/H 하드 링크 (Hard Link) -

초보자가 가장 이해하기 어려운 것 중 하나가 바로 Symbolic Link 와 Hard Link 의 차이점이라고 생각된다. 본인도 그랬고. 직접 설명하는 것 보다, 한국 Microsoft 엔지니어가 직접 쓴 블로그를 먼저 읽어보기를 추천한다. 매우 이해하기 쉽게 쓰여졌고, 첨부된 도표만 봐도 금방 이해할 수 있다. 


결론적으로 말하면, 윈도우 ntfs 시스템에서 파일이란, 기본적으로 모두 하나 이상의 하드 링크로 만들어져 있다는 점이다. 즉 파일 내용은 따로 있고, 디렉토리/파일명 자체가 하나의 하드링크라는 것이다. mklink /h 는 여기에 하드링크를 하나 더 추가할 수 있는 것이다. 자료의 정식 주소를 하나 더 추가하는 셈이다. 따라서 하드링크를 하나 더 생성했을 경우, 이전에 있던 원래 파일명(하드링크)를 삭제해도 자료는 아직 하나 이상의 하드링크를 가지고 있기 때문에 자료는 삭제되지 않는다. 


그러나 한가지 주의사항이 있다면, 하드링크는 하나의 파티션 내에서만 공존할 수 있다는 점. 즉 다른 파티션으로 하드링크는 만들 수 없다.



/J 디렉토리 교차점 (Directory Junction) -

이 옵션에 대해서는 여기저기 말이 다른경우가 많은데, 기본적으로 /D 와 차이점은 디렉토리 교차점은 네트워크 경로를 지원하지 않고, 상대위치 설정도 지원하지 않는다. 또한, 디렉토리 교차점은 한 폴더내에서 같은 위치가 있는 폴더도 생성되지 않는다. 심볼릭 링크에 비해 단점이 매우 많은데, 유일한 장점은 Windows XP 에서도 접근이 가능하다는 것. 아마도 「디렉토리 교차점」은 「디렉토리 심볼릭 링크」의 구형 버전인 것으로 판단된다. 대신 XP와 호환.


특별히 다른 운영체제와의 호환성 문제가 발생될 요소가 없는한 심볼릭 링크, 디렉토리 심볼릭 링크 사용을 추천.


※  MSDN 자료  Hard Links and Junctions, Create Symbolic Links







Comments