하나의 파일을 여러 경로에서 공유하거나, 특정 디렉터리에 있는 파일을 다른 위치에서 가상으로 참조하고 싶을 때 사용하는 명령어가 바로 **ln (link)**입니다.
ln을 이용하면 파일의 링크(참조)를 새로 만들 수 있으며, 특히 **심볼릭 링크(Symlink)**는 실무에서 자주 사용된다고 합니다.
ln 명령어 기본 형태
ln [옵션] <링크할 파일> <링크이름>
하드 링크 (Hard Link)
기본 사용법
ln original.txt link.txt
특징
- 실제 파일 내용을 가리키는 또 하나의 이름을 만듭니다.
- 파일 내용은 하나지만, 이름이 여러 개
- 어느 쪽 파일명을 삭제해도 내용은 남아 있음 (링크 수가 0이 될 때까지)
제한 사항
- 다른 디렉터리나 파일 시스템 간에는 생성 불가
- 디렉터리에는 하드 링크 생성 불가 (보안/복잡성 문제로 제한됨)
심볼릭 링크 (Symbolic Link, Soft Link)
기본 사용법
ln -s /경로/원본 대상링크
예시
ln -s file5 file0
명령어를 실행 후 ls -l로 조회하면
파일 유형에

첫글자가 l로 시작하는 것을 볼 수 있는데 이는 링크 파일임을 의미 합니다.

file0 -> file5는 file0 라는 파일이 file5를 가리키고 있다는 것을 보여줍니다.
만약에 심볼릭 링크를 걸어놓은 상태에서 원본인 "file5"를 rm 명령어로 삭제하게 된다면

바뀐 것을 확인 할 수 있습니다.
모양은 동일하지만, 실제로 link5를 열려고 하면 오류가 발생합니다.
이는 링크가 가리키고 있던 원본 파일 file5가 삭제되었기 때문으로, 이제 link5는 존재하지 않는 파일을 참조하는 **무효한 링크(dangling symlink)**가 된 상태입니다.
심볼릭 링크의 특징
| 가리키는 대상 | 원본 파일의 경로를 참조 (포인터처럼 동작) |
| 파일 시스템 | 다른 디렉터리, 심지어 다른 디스크도 가능 |
| 삭제 시 영향 | 원본 파일이 삭제되면 링크는 깨짐 (dangling link) |
| 식별 방법 | ls -l 시 → myindex.html -> /var/www/html/index.html 형식으로 보임 |
- l로 시작하는 항목은 링크 파일
- -> 뒤에 실제 참조 대상 경로 표시
요약: 하드 링크 vs 심볼릭 링크 비교
| 명령어 예시 | ln file link | ln -s file link |
| 대상 | 실제 파일의 내용(아이노드) 참조 | 파일의 경로(문자열) 참조 |
| 경로 제한 | 같은 파일 시스템 내에서만 가능 | 다른 디스크, 디렉터리도 가능 |
| 원본 삭제 시 | 다른 링크들이 유지됨 | 링크가 끊어짐(dangling) |
| 디렉터리 링크 | 불가 | 가능 (ln -s /dir link) |
| 사용 용도 | 파일 중복 없이 공유 | 자주 접근하는 경로 단축, 환경 설정 등 |
'Linux' 카테고리의 다른 글
| [ Linux ] diff - 두 파일 비교와 주요 옵션 정리 (0) | 2025.05.29 |
|---|---|
| [ Linux ] fuser - 누가 파일/포트를 점유 중인지 확인하기 (0) | 2025.05.29 |
| [ Linux ] .p12 인증서 만들기 (0) | 2025.05.21 |
| [ Linux ] 파일 편집 명령어 정리 (0) | 2025.05.20 |
| [ Linux ] 파일 읽기 명령어의 종류와 차이점 비교 (0) | 2025.05.20 |