ln(link)은 「심볼릭 또는 하드 링크」 만들기.
2차에서 다룬 두 링크의 생성 명령.
심볼릭 링크.
ln -s 원본경로 링크경로.
ln -s /opt/python3.11/bin/python /usr/local/bin/python — 짧은 별칭.
ls -l로 보면 → 표시.
원본 삭제 시 깨짐(broken).
하드 링크.
ln 원본 새이름 (-s 없음).
같은 inode를 다른 이름으로.
둘이 「완전 동등」 — 어느 쪽을 지워도 데이터는 다른 이름이 살아 있는 한 유지.
흔한 패턴.
1) 짧은 별칭 — ln -s /very/long/path/to/file ~/myfile.
2) 버전 별칭 — ln -s python3.11 python.
3) 설정 모음 — /etc/nginx/sites-enabled/site → ../sites-available/site.
4) dotfiles — ~/.vimrc → ~/dotfiles/vimrc.
주의.
1) 심링크는 절대·상대 경로 둘 다 가능 — 상대 경로 심링크는 「링크 위치 기준 상대」.
ln -s ../foo /tmp/link면 /tmp/link → /foo가 아니라 /tmp/../foo = /foo이긴 한데, 다른 위치로 옮기면 깨짐.
2) -i로 덮어쓰기 확인.
3) -f로 강제(기존 링크 덮어쓰기).
한 줄 요약
ln -s는 심볼릭 링크(원본 경로 가리킴), ln은 하드 링크(같은 inode).
별칭·버전 관리·dotfiles에 자주.
상대 경로 심링크는 「링크 위치 기준」 주의.
더 알아볼 것
- ln vs cp 차이 — 디스크 사용
- stow — dotfiles 관리에 심링크 자동화
- relative vs absolute symlink