Round Here

바로가기와 symlink(symbolic link)의 큰 차이

이현봉 2023. 3. 9. 20:57

인터넷 글 중에 symlink가 윈도우의 바로가기와 비슷하다는 것이 있다.  아니!

윈도우에는 "바로 가기"와 symlink가 있다.  이 둘의 동작은 실제 퍽 다르다.  간단히 말해, symlink가 진짜 파일시스템 레벨에서 동작하는 것이고 "바로 가기"는 시늉만 내는 껍대기다.  Unix/Linux는 물론 symlink 있지만 윈도우의 바로가기 같은 것 없는 것 같다.

윈도우의 "바로 가기"와 symlink 비교하면,  

1) 일단 유저인터페이스에서 보이는 것이 다르다.  

▶ 폴더를 가르키는 "바로가기" (CLI & 파일탐색기) 

 

▶ 폴더를 가르키는 symlink (CLI & 파일탐색기)

- CLI 에서는 바로가기와 symlink는 확실히 다르게 보인다.  symlink는 <SYMLINKD> 라 하며 가르키는 대상을 보여준다.  

- 엇...  파일탐색기에서 바로가기와 symlink의 아이콘이 같네.  "유형"에서 바로가기는 "바로 가기"로 나타나고 symlink는 "파일 폴더"로 표시된다.  흠...

그런데 Total Commander나 Double Commander 에서는 바로가기와 symlink의 아이콘을 다르게 보여준다.

2) 바로가기나 symlink는 파일시스템에서 cd, rm, cp, mkdir, dir 이런 것 하면서 폴더나 파일들을 쉽게 내비게이트, 관리하도록 만들어진 것이잖아.  다른 점이 있나?

몹시 다르다.  폴더를 가르키는 바로가기로는 cd 가 안된다.  당연히 그 안에 무슨 파일을 카피하고, 옮기고, 서브 디렉토리를 만드는 그런 것 안된다.  이게 뭐야....  꽝.

3) 위의 이유로 프로그래밍/개발에서 "바로가기"는 쓸 수가 없다.  다음과 같은 파이썬에서;

import requests
url = 'https://raw.githubusercontent.com/hwchase17/langchain/master/langchain/__init__.py'
entry = requests.get(url, allow_redirects=True)
open('temp/entry.py', 'wb').write(entry.content)    # temp가 symlink이면 OK.  "바로가기"면 FileNotFoundError

즉, 프로그래밍/개발 환경에서 파일시스템을 다룰 때 "바로 가기"는 전혀 작동 안한다.

4) Dropbox나 Google Drive 에서의 동기화

"바로가기"는 두 플랫폼에서 다 지원하지 않는다.  그렇지???

symlink 경우 Google Drive는 지원하지 않고, Dropbox는 symlink가 가르키는 것이 Dropbox내의 것이면 지원하고 그렇지 않고 Dropbox 밖의 것이면 (가령 다른 드라이브에 있는) 지원하다가 이젠 안 한다.  이해할 만 하다.  저장 한도가 있는데 symlink가 가르키는 대상이 테라 단위면 어떡하냐? 

윈도우에서 mklink로 만드는 symlink나 linux의 symlink 다 똑 같이 동작한다. 

◈ 바로가기와 symlink는 다르다

 

'Round Here' 카테고리의 다른 글

GNOME 튜닝  (0) 2023.03.11
Linux dual boot에서 윈도우 NTFS 파티션에 쓰기 문제  (0) 2023.03.07
과학과 종교 - 파인만을 생각하며...  (0) 2022.11.15
데스크탑 업그레이드  (2) 2022.10.07
느긋 나른한 여름에  (0) 2022.07.02