하드링크(Hard Link) vs 소프트링크(Soft Link, Symbolic Link) 비교표
| 구분 | 하드링크 (Hard Link) | 소프트링크 (Soft Link / Symlink) |
|---|---|---|
| 개념 | 같은 파일을 가리키는 “또 다른 파일 이름” | 원본 경로를 가리키는 “바로가기(포인터)” |
| 연결 대상 | **inode(파일 자체)**를 공유 | 경로 문자열을 저장 |
| inode 번호 | 원본과 같음 | 원본과 다름 |
| 파일 삭제 영향 | 원본을 삭제해도 다른 하드링크가 남아있으면 파일 데이터 유지 | 원본을 삭제하면 링크가 끊어짐(깨진 링크) |
| 디렉터리 링크 | 일반적으로 불가(보안/순환참조 이슈) | 가능 |
| 다른 파일시스템(파티션) | 불가 (같은 파일시스템 내에서만) | 가능 (다른 파티션도 경로만 알면 OK) |
| 용량/크기 표시 | 링크도 일반 파일처럼 보임(실제 파일 데이터 공유) | 링크 파일 자체 크기는 경로 길이만큼 작음 |
| 사용 목적 | 데이터 중복 없이 동일 파일을 여러 이름으로 관리 | 위치가 다른 파일/폴더를 쉽게 참조(바로가기) |
| 대표 명령 | ln 원본 링크이름 |
ln -s 원본 링크이름 |
| 예시 | ln a.txt a_hard |
ln -s a.txt a_soft |
한 줄 요약(암기용)
-
하드링크: “파일 자체(inode)를 공유” → 원본 지워도 남음, 다른 파티션 불가
-
소프트링크: “경로를 가리키는 바로가기” → 원본 지우면 깨짐, 다른 파티션 가능
시험/실무에서 자주 나오는 포인트
-
하드링크는 inode 공유 → 링크 카운트(link count)가 증가
-
심볼릭 링크는 경로 참조 → 원본 변경/이동/삭제에 취약(깨질 수 있음)
-
디렉터리 링크: 심볼릭은 가능, 하드는 보통 불가
1) 실습으로 이해하기 (명령어 + ls -li 확인)
(1) 원본 파일 만들기
echo "hello" > a.txt
(2) 하드링크 / 소프트링크 만들기
ln a.txt a_hard
ln -s a.txt a_soft
(3) inode 확인 (ls -li)
ls -li a.txt a_hard a_soft
예시 출력(형태 이해용)
123456 -rw-r--r-- 2 user user 6 Dec 1 10:00 a.txt
123456 -rw-r--r-- 2 user user 6 Dec 1 10:00 a_hard
123789 lrwxrwxrwx 1 user user 5 Dec 1 10:00 a_soft -> a.txt
✅ 해석 포인트
-
a.txt와a_hard의 inode(첫 번째 숫자)가 같다 → 하드링크 -
a_soft는 inode가 다르고,-> a.txt처럼 가리키는 경로가 표시 → 심볼릭 링크 -
하드링크는
2처럼 링크 카운트가 증가(원본 포함 “이름” 개수)
2) 삭제 실험 (시험에 가장 많이 나옴)
(1) 원본 삭제
rm a.txt
(2) 다시 확인
ls -li a_hard a_soft
cat a_hard
cat a_soft
✅ 결과 정리
-
a_hard: 정상 동작 (데이터 유지됨) -
a_soft: 깨짐 (원본 경로가 사라져서 “broken link”)
3) 기출 스타일 핵심 정리표
| 체크 포인트(자주 출제) | 정답 |
|---|---|
| 하드링크는 무엇을 공유? | inode(파일 자체) |
| 심볼릭 링크는 무엇을 저장? | 경로 문자열(바로가기) |
| 원본 삭제 시 하드링크는? | 다른 하드링크가 남으면 데이터 유지 |
| 원본 삭제 시 심볼릭 링크는? | 깨진 링크 됨 |
| 다른 파일시스템(파티션) 링크 가능? | 하드 ❌ / 심볼릭 ✅ |
| 디렉터리 링크 가능? | 하드 ❌(보통) / 심볼릭 ✅ |
ls -li에서 하드링크 구분법 |
inode 번호 동일 + 링크 카운트 증가 |
ls -li에서 심볼릭 링크 구분법 |
파일 타입 l + -> 경로 표시 |
4) 미니 문제(정보보안기사 느낌)
Q1. 다음 중 원본 파일을 삭제해도 내용이 유지될 수 있는 링크는?
-
소프트링크 2) 하드링크
✅ 정답: 2) 하드링크
Q2. 서로 다른 파티션(/, /home 등) 간에도 만들 수 있는 링크는?
-
하드링크 2) 소프트링크
✅ 정답: 2) 소프트링크
Q3. ls -li에서 inode 번호가 같은 두 파일이 있다. 이는 무엇을 의미하는가?
✅ 정답: 서로 하드링크 관계(같은 파일 데이터를 공유)
Q4. 심볼릭 링크 파일의 권한이 lrwxrwxrwx처럼 보이는 이유는?
✅ 정답: 파일 타입이 **l(링크)**이며, 실제 접근 권한은 보통 원본의 권한/경로 접근에 의해 영향을 받음(링크 자체 권한은 의미가 작음)