Junction으로 NTFS에서 link 사용하기

unix/linux를 사용하다 보면 ln 이라는 유틸리티를 자주 접하게 됩니다.

ln은 symbolic/hard link를 생성하는 유틸리티로, 현재 위치에 가상으로 존재하며 이 파일에 접근하면 원본 파일에 접근하는 것과 동일하게 사용할 수 있습니다.
Windows에서는 단축 아이콘이라는 비슷한(?) 개념이 있지만 사용하다 보면 단축아이콘의 기능만으로는 충족되지 않을 때가 있습니다. 단축 아이콘을 생성한 파일을 hex editor로 연다던가... 그러면 원본 파일이 열리는게 아닌 lnk파일이 열릴 뿐이죠.
ln과 같은 기능을 수행하는 유틸리티를 찾아보니, Sysinternals에서 제작한 Junction이라는 유틸리티가 있었습니다.
Junction은 http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx 에서 다운로드를 하시면 됩니다.

사용 방법은 간단합니다.

1. <경로>에 junction이 있는지 확인

junction -s <경로>

2. <원본>을 <사본>으로 junction 생성

junction <사본> <원본>

3. <사본> junction 삭제

junction -d <사본>

junction의 사용 예를 들면 다음과 같습니다.

1. c:\에 junction_test라는 디렉토리를 생성한 뒤 1.txt라는 파일을 만들었습니다.

C:\junction_test>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 0000-0000
 C:\junction_test 디렉터리
2009-04-27  오전 10:14    <DIR>          .
2009-04-27  오전 10:14    <DIR>          ..
2009-04-27  오전 10:14                16 1.txt
               1개 파일                  16 바이트
               2개 디렉터리  22,408,437,760 바이트 남음

2. 1.txt파일의 내용은 다음과 같습니다.

C:\junction_test>type 1.txt
http://b4you.net

3. d:\로 이동하여 junction을 생성합니다

C:\junction_test>d:
D:\>junction junc c:\junction_test
Junction v1.05 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2007 Mark Russinovich
Systems Internals - http://www.sysinternals.com
Created: D:\junc
Targetted at: c:\junction_test

4. junction이 제대로 연결되었는지 확인합니다

D:\>cd junc
D:\junc>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 0000-0000
 D:\junc 디렉터리
2009-04-27  오전 10:14    <DIR>          .
2009-04-27  오전 10:14    <DIR>          ..
2009-04-27  오전 10:14                16 1.txt
               1개 파일                  16 바이트
               2개 디렉터리  22,408,437,760 바이트 남음
D:\junc>type 1.txt
http://b4you.net

5. d:\junc에 파일을 생성합니다

D:\junc>copy con 2.txt
woo hoo!
^Z
        1개 파일이 복사되었습니다.
D:\junc>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: FCB7-B32F
 D:\junc 디렉터리
2009-04-27  오전 10:16    <DIR>          .
2009-04-27  오전 10:16    <DIR>          ..
2009-04-27  오전 10:14                16 1.txt
2009-04-27  오전 10:16                10 2.txt
               2개 파일                  26 바이트
               2개 디렉터리  24,657,281,024 바이트 남음

6. c:\junction_test에 2.txt가 생성되었는지 확인합니다

D:\junc>cd /d c:\junction_test
C:\junction_test>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 441D-C919
 C:\junction_test 디렉터리
2009-04-27  오전 10:16    <DIR>          .
2009-04-27  오전 10:16    <DIR>          ..
2009-04-27  오전 10:14                16 1.txt
2009-04-27  오전 10:16                10 2.txt
               2개 파일                  26 바이트
               2개 디렉터리  24,657,281,024 바이트 남음

7. 2.txt 파일의 내용을 확인합니다

C:\junction_test>type 2.txt
woo hoo!
C:\junction_test>

삭제를 위해서는 -d 옵션을 지정하거나 그냥 삭제하시면 됩니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2009/04/27 10:28 2009/04/27 10:28
, , ,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/219


블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

  1. 듀얼클러치의 생각 rsvin28's me2DAY 2009

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Site Stats

Total hits:
158005
Today:
75
Yesterday:
228