리눅스에 비해 심볼릭 링크(Symbolic Link)는 윈도우에는 비교적 최근에 도입된 기능입니다. Windows Vista에서 처음 선보인 이후 지금까지 계속 제공되고 있습니다.
하지만 안타깝게도 대부분의 사용자는 심볼릭 링크에 대해 잘 알지 못합니다. 지금부터 심볼릭 링크가 정확히 무엇인지, 그리고 Windows 10에서 어떻게 활용하는지 하나씩 살펴보겠습니다.
심볼릭 링크란 무엇인가?
심볼릭 링크는 한마디로 '초강력 버전의 바로 가기'입니다. 일반적인 바로 가기처럼 작동하지만 훨씬 더 강력합니다. 예를 들어 특정 파일에 대한 심볼릭 링크를 설정하면, 프로그램이 실제로는 존재하지 않는 위치에 파일이 있는 것처럼 인식하도록 속일 수 있습니다.
윈도우의 심볼릭 링크는 크게 두 가지로 나뉩니다. 바로 하드 링크(Hard Link)와 소프트 링크(Soft Link)입니다. 리눅스와 달리 윈도우에서는 소프트 링크만을 '심볼릭 링크(symlink)'라고 부릅니다.
하드 링크(Hard Link)
A 위치에 있는 파일이나 폴더를 B 위치에 있는 파일이나 폴더에 하드 링크로 연결하면, B 위치의 파일이 마치 A 위치에도 존재하는 것처럼 나타납니다.
예를 들어 C:\Programs 디렉터리에 "sample.txt"라는 텍스트 파일이 있다고 가정해 보겠습니다. 이 sample.txt를 "test.txt"라는 이름으로 하드 링크하면, 운영체제는 test.txt를 sample.txt 그 자체로 취급합니다.
즉, 모든 하드 링크는 원본 파일이나 디렉터리와 동일하게 표시되며, 생성된 하드 링크들은 모두 하드 드라이브상의 같은 저장 위치를 가리킵니다. 따라서 하드 링크에 변경을 가하면 그 내용이 원본 파일에도 그대로 반영됩니다.
하드 링크를 사용하기 전에 꼭 기억해야 할 점은, 서로 다른 디스크 드라이브 사이에는 하드 링크를 만들 수 없다는 것입니다. C: 드라이브에 저장된 파일이라면 하드 링크 역시 반드시 C: 드라이브에 있어야 합니다. 이는 파일 시스템의 구조적인 제약 때문입니다.
마지막으로, 특정 파일의 하드 링크를 만든 후 해당 파일을 삭제하려면 그 파일을 가리키는 모든 하드 링크도 함께 삭제해야 합니다. 하드 링크는 실제 파일 그 자체를 나타내며 하드 드라이브상의 저장 위치를 직접 가리키기 때문입니다. 저장 공간을 확보하려면 그 위치를 향한 모든 링크를 제거해야 합니다.
소프트 링크(Soft Link), 즉 심볼릭 링크
소프트 링크는 일반적인 바로 가기와 거의 같은 방식으로 작동합니다. 결정적인 차이점은 딱 하나입니다. 심볼릭 링크는 실제 파일이 아니라 파일의 주소(경로)를 나타낸다는 점입니다. 따라서 바로 가기와 달리 심볼릭 링크 자체는 파일이 아니며, 이것이 심볼릭 링크는 하드 드라이브 공간을 거의 차지하지 않는 반면 바로 가기는 공간을 차지하는 이유이기도 합니다.
하드 링크와 달리 심볼릭 링크는 하드 드라이브상의 저장 위치를 직접 가리키지 않습니다. 대신 그 저장 위치를 가리키는 파일이나 디렉터리를 가리킵니다. 그래서 파일을 삭제할 때 그 파일을 향한 모든 심볼릭 링크를 일일이 지울 필요가 없습니다.
심볼릭 링크는 원본 파일 자체를 가리키기 때문에 서로 다른 드라이브 사이에서도 자유롭게 만들 수 있습니다.
심볼릭 링크는 언제 사용하면 좋을까?
첫째, 심볼릭 링크는 일반적인 바로 가기보다 빠릅니다. 따라서 성능이 낮은 컴퓨터에서는 바로 가기 대신 심볼릭 링크를 사용하는 것이 좋습니다.
둘째, 대량의 데이터를 한 위치에서 다른 위치로 복사·붙여넣어야 하는 상황이 종종 있습니다. 이럴 때는 복사 대신 심볼릭 링크를 만드는 편이 좋습니다. 중복 파일이 생기지 않아 저장 공간을 크게 절약할 수 있습니다.
마지막으로, 어떤 프로그램은 파일이 특정 위치에 있어야만 동작하는 경우가 있습니다. 예를 들어 OneDrive는 OneDrive 폴더 안에 있는 파일만 동기화합니다. 심볼릭 링크를 활용하면 파일 위치와 관계없이 컴퓨터의 어떤 파일이든 동기화할 수 있습니다.
명령 프롬프트로 Windows 10에 심볼릭 링크 설정하기
Windows 10에서는 명령 프롬프트의 mklink 명령을 사용해 심볼릭 링크를 만들 수 있습니다.
먼저 시작 메뉴 검색창에 cmd를 입력해 명령 프롬프트를 찾은 뒤, 가장 정확히 일치하는 결과를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택하세요.
mklink 명령으로 하드 링크와 소프트 링크를 모두 만들 수 있습니다. mklink 유틸리티의 전체적인 구조를 확인하려면 mklink를 입력하고 Enter 키를 누르면 됩니다. 그러면 명령 구문과 함께 사용 가능한 여러 옵션이 목록으로 표시됩니다.
이제 mklink를 사용해 텍스트 파일에 대한 소프트 링크를 만들어 보겠습니다.
mklink link target 형식으로 입력하되, "link"에는 생성할 소프트 링크의 경로를, "target"에는 원본 파일의 경로를 넣으면 됩니다. 아래 이미지는 "original.txt" 파일을 참조하는 "softlink.txt"라는 소프트 링크를 만드는 과정을 보여줍니다.
폴더나 디렉터리에 대한 소프트 링크를 만들려면 mklink /D link target 형식을 사용합니다. "/D" 옵션은 디렉터리용 심볼릭 링크를 생성합니다.
하드 링크를 만드는 과정도 동일합니다. 같은 mklink link target 명령 구조를 사용하되 "/H" 옵션을 붙이면 됩니다.
아래 이미지는 "original.txt"와 같은 저장 위치를 가리키는 가상의 "hardlink.txt" 파일에 대한 하드 링크를 만드는 방법을 보여줍니다.
폴더나 디렉터리에 대한 하드 링크를 만들려면 "/H" 대신 "/J" 옵션을 사용하면 됩니다.
Hard Link Shell Extension으로 심볼릭 링크 만들기
먼저 Hard Link Shell Extension을 다운로드해 설치합니다. 이때 자신의 컴퓨터에 맞는 패키지를 선택해야 합니다. 예를 들어 64비트 운영체제라면 반드시 64비트 버전을 내려받으세요. 자신이 64비트 환경인지 32비트 환경인지 모르겠다면 미리 확인해 두는 것이 좋습니다.
설치가 끝나면 링크를 만들고 싶은 파일이나 폴더가 있는 위치로 이동합니다. 해당 파일을 마우스 오른쪽 버튼으로 클릭하고 드롭다운 목록에서 Pick Link Source(링크 원본 선택)를 선택합니다.
링크 원본을 지정했다면, 링크를 생성할 대상 폴더로 이동해 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 Drop Symbolic Link(심볼릭 링크 놓기)를 선택합니다. 그러면 원본 파일과 같은 이름의 심볼릭 링크가 생성됩니다.
같은 방법으로 파일이나 폴더에 대한 하드 링크도 만들 수 있습니다. 단, 하드 링크는 같은 디스크 드라이브 안에서만 만들 수 있다는 점을 잊지 마세요. Hard Link Shell Extension 역시 같은 드라이브 안에 있을 때만 하드 링크 생성 옵션을 제공합니다.
링크 원본을 지정한 뒤 드라이브 내부 어느 곳이든 마우스 오른쪽 버튼으로 클릭하고 Drop As에 마우스를 올린 다음 Hardlink를 선택하면 원본 파일에 대한 하드 링크가 생성됩니다.
심볼릭 링크로 저장 공간을 크게 절약하세요
물론 모든 사용자에게 심볼릭 링크가 필수적인 것은 아닙니다. 하지만 데이터를 깔끔하게 정리하면서도 저장 공간을 최소한으로 사용하고 싶은 분들에게 심볼릭 링크는 매우 강력한 기능입니다.
파일을 여러 위치로 일일이 복사하는 대신 심볼릭 링크를 만들어 보세요. 그것만으로도 훨씬 효율적인 파일 관리가 가능합니다.