「한 파일을 여러 이름으로 가리키는」 두 가지 방식이 심볼릭 링크와 하드 링크입니다.
비슷해 보이지만 동작 방식이 매우 달라 용도도 다릅니다.
심볼릭 링크(symlink, 소프트 링크).
「다른 파일의 경로를 담은 작은 파일」.
윈도우의 「바로가기」와 비슷.
ln -s /원본/경로 /링크/경로로 생성.
ls -l로 보면 -> 표시와 함께 가리키는 곳이 보임.
하드 링크.
「같은 파일에 다른 이름」.
디스크의 같은 데이터를 두 이름이 가리킴.
ln 원본 새이름.
둘은 「완전 동등」 — 어느 쪽을 지워도 데이터는 다른 이름이 살아 있는 한 유지.
차이.
1) 심볼릭 — 디렉토리도 가능, 다른 파일시스템 가능, 원본 삭제 시 깨짐(broken).
하드 — 디렉토리 안 됨, 같은 파일시스템만, 원본 개념이 없어 「하나만 삭제됐다」는 표현이 적절.
활용.
심볼릭 — /usr/local/bin/python → /usr/local/bin/python3.11 같은 「버전 별칭」, 설정 파일 모음(/etc/nginx/sites-enabled/site → ../sites-available/site), dotfiles 관리.
하드 — 백업 도구의 「변경된 파일만 복사」 최적화(rsnapshot 등).
한 줄 요약
심볼릭 링크는 경로 가리키는 작은 파일(디렉토리·다른 FS 가능, 원본 삭제 시 깨짐), 하드 링크는 같은 데이터의 다른 이름(디렉토리 불가, 같은 FS만, 둘 동등).
용도 다름.
더 알아볼 것
- ln -s 사용 패턴
- find -type l로 링크 찾기
- stat으로 inode 확인