리눅스에서 ln 명령은 파일이나 디렉터리의 “링크(link)”를 생성하는 명령입니다. 링크는 하나의 파일을 여러 위치에서 공유하여 사용할 수 있게 하는 기능으로, 저장 공간 절약·작업 효율 향상·파일 관리 편의성 면에서 매우 큰 장점을 갖습니다. 특히 서버·개발·백업 환경에서는 링크 개념을 정확히 이해하고 활용하는 것이 중요합니다.

1. 링크란 무엇인가
리눅스에서는 파일이 “이름과 실제 데이터”로 구분되어 있습니다.
- 파일 이름은 디렉터리에 저장된 표시 정보
- 실제 데이터는 하드디스크에 저장된 내용
이 두 요소가 분리되어 있기 때문에, 같은 데이터를 여러 이름으로 연결해 사용하는 방식이 가능합니다.
이때 두 개 이상의 이름을 하나의 파일에 연결해 주는 것이 바로 링크(link)입니다.
링크는 다음과 같은 상황에서 유용합니다.
- 같은 파일을 다른 경로에서 같이 사용해야 할 때
- 원본 파일을 삭제해도 데이터가 유지되어야 할 때
- 큰 파일을 여러 곳에 복사하지 않고 공유해야 할 때
- 설정 파일의 위치를 통일해 관리하고 싶을 때
이 기능을 실행하는 명령이 ln입니다.
2. 링크의 종류 — 하드 링크 vs 소프트 링크
리눅스의 링크는 두 가지 방식으로 나뉩니다.
| 종류 | 이름 | 동작 방식 | 특징 |
| 하드 링크 | Hard Link | 동일한 데이터 블록에 추가 파일 이름 생성 | 원본 삭제돼도 데이터 유지 |
| 소프트 링크 | Symbolic Link (심볼릭 링크) | 원본의 위치를 가리키는 “바로가기” | Windows의 바로가기와 비슷 |
두 방식의 차이를 직관적으로 표현하면 다음과 같습니다.
| 비유 | 설명 |
| 하드 링크 | 같은 책 한 권을 여러 이름의 도서 목록에 등록 |
| 소프트 링크 | 책 위치를 알려주는 포스트잇(바로가기) |
3. 하드 링크 — 데이터 자체를 공유
하드 링크는 동일한 데이터를 가리키는 또 하나의 이름을 만드는 방식입니다.
따라서 파일 크기는 늘어나지 않고, 어느 이름으로 수정해도 동일한 데이터에 반영됩니다.
생성 방법
ln 원본파일 하드링크이름
예시:
ln memo.txt memo_copy
두 파일은 서로 다른 이름이지만, 내부적으로는 같은 데이터를 가리킵니다.
특징 정리
| 항목 | 설명 |
| 원본 삭제 시 | 링크 파일은 그대로 살아 있음 |
| 데이터 공유 | O |
| 파일 크기 증가 | 없음 |
| 디렉터리에 사용 | 지원되지 않음 (보안·혼란 방지) |
| 파일 시스템 경계 | 넘을 수 없음 |
원본과 링크는 완전히 동일한 효력을 갖기 때문에 ls -i로 인오드 번호를 확인해 보면 두 파일이 같은 번호를 가집니다.
4. 소프트 링크 — 원본을 가리키는 “바로가기”
소프트 링크(Symbolic Link, symlink)는 윈도우의 바탕화면 바로가기와 유사합니다.
원본 파일의 경로를 가리키는 파일을 하나 더 만드는 방식입니다.
생성 방법
ln -s 원본 경로 링크이름
예시:
ln -s /var/www/html/config.yaml config
config 파일을 열면 실제로는 /var/www/html/config.yaml을 열게 됩니다.
특징 정리
| 항목 | 설명 |
| 원본 삭제 시 | 링크는 끊어져 사용 불가 |
| 데이터 공유 | X (경로만 연결) |
| 파일 크기 증가 | 아주 약간 발생 |
| 디렉터리 링크 | 가능 |
| 파일 시스템 경계 | 넘을 수 있음 |
소프트 링크는 삭제·이동 작업 시 유연하고 경로 지정에 강하기 때문에 실무에서 가장 많이 사용됩니다.
5. 링크 상태 확인 방법
링크 생성 후 ls -l을 사용하면 다음과 같이 링크 여부를 확인할 수 있습니다.
lrwxrwxrwx 1 root root 10 Nov 22 config -> /path/to/file
| 표시 | 의미 |
| 맨 앞의 l | 링크 파일 |
| → 방향 표시 | 링크가 가리키는 대상 |
하드 링크는 외형상 일반 파일과 동일하므로 인오드 번호로 확인합니다.
ls -i memo.txt memo_copy
두 파일의 인오드 번호가 같다면 하드 링크입니다.
6. 언제 어떤 링크를 사용해야 할까
| 상황 | 추천 링크 |
| 원본 파일이 삭제되어도 데이터 유지해야 함 | 하드 링크 |
| 디렉터리를 연결해야 함 | 소프트 링크 |
| 다른 디스크(다른 파일 시스템) 연결 | 소프트 링크 |
| 설정 파일 위치를 통일하고 싶음 | 소프트 링크 |
| 대용량 파일을 복사하지 않고 공유 | 하드 링크 |
| 개발·백업 환경 정리 | 둘 다 가능 (목적에 따라 선택) |
흔히 서버·개발·설정 관리에서는 소프트 링크,
대용량 데이터 공유나 원본 보호가 목적일 때는 하드 링크를 선호합니다.
7. 실무에서 자주 사용하는 링크 활용 예
| 목적 | 명령 예 |
| 웹 서버 루트 경로에 프로젝트 최신 버전 연결 | ln -s /deploy/app/v3 current |
| 설정 파일 단일화 | ln -s /etc/nginx/sites-available/my.conf /etc/nginx/sites-enabled/ |
| 로그 파일 빠른 접근 | ln -s /var/log/app/app.log log |
| 대용량 파일 다중 사용 | ln /data/big.db big_backup |
| 특정 스크립트 명령 이름 통일 | ln -s /usr/local/bin/python3 /usr/bin/python |
소프트 링크를 이용한 설정 파일 관리 방식은 리눅스 배포 시스템에서 사실상 표준입니다.
8. 링크 제거 방법
링크를 삭제해도 원본에는 영향을 주지 않습니다.
rm 링크파일
소프트 링크에서 경로가 디렉터리여도 rm 또는 unlink만 사용해야 합니다.
unlink 링크파일
주의사항: 소프트 링크 삭제 시 rm -r을 사용하지 않습니다.
잘못 사용하면 링크가 아니라 원본 디렉터리가 삭제될 수 있습니다.
9. LN 사용 시 주의할 점
| 주의 항목 | 설명 |
| 상대경로 vs 절대경로 | 기존 디렉터리 구조가 변경되면 상대경로 링크가 끊어질 수 있음 |
| 이동 작업의 영향 | 소프트 링크의 원본이 이동하면 링크 단절 |
| 이름 중복 | 기존 파일과 같은 이름으로 링크를 만들면 덮어쓰기 |
| 실수 복구 | 하드 링크는 원본을 삭제해도 데이터 유지 → 관리자는 주의 |
실무에서는 항상 먼저 ls -l로 링크 방향을 확인하는 습관이 추천됩니다.
마무리
ln 명령은 리눅스 파일 시스템을 깊이 있게 다루는 핵심 기술입니다.
링크를 이해하면 파일을 복사하지 않고 공유하고, 설정 파일을 통일해 관리하며, 여러 경로에서 하나의 데이터를 다루는 작업이 훨씬 효율적이 됩니다.
핵심 요약:
- ln은 파일을 연결해 하나의 데이터를 여러 이름으로 사용할 수 있게 하는 명령
- 하드 링크는 데이터를 공유, 소프트 링크는 경로를 공유
- 실무에서는 대체로 소프트 링크 사용 빈도가 높음
- 링크는 시스템 자동화·서버 구성·개발 환경에서 반드시 필요한 기술
익숙해질수록 리눅스 파일 관리 능력은 한 단계 더 성장합니다.
한 번 직접 실습해 보면, 링크의 편리함을 바로 체감하실 수 있을 것입니다.
'리눅스 > 리눅스 기초' 카테고리의 다른 글
| 리눅스에서 파이프(pipe) (0) | 2025.12.01 |
|---|---|
| 리눅스에서 리다이렉트(Redirect) (1) | 2025.11.30 |
| 리눅스에서 표준입력과 표준출력 (2) | 2025.11.28 |
| 사용자 그룹 권한 부여 옵션, -aG (0) | 2025.05.03 |
| 사용자 kbh 추가 절차 (1) | 2025.05.02 |