자격증 공부/리눅스 마스터 2급

[Linux] 심볼릭 링크의 개념과 사용

강_토발즈 2025. 8. 13. 21:37

 

 

 

1. 심볼릭 링크란?

리눅스에서 심볼릭 링크(Symbolic Link)는 다른 파일이나 디렉터리를 가리키는 ‘참조 포인터’ 역할을 하는 특수 파일이다. (C 언어 포인터 같은 느낌이 든다...)
쉽게 말해 원본 파일의 ‘바로가기’ 역할이며, Windows의 바로가기(.lnk)와 유사하다.

  • 원본 파일이 삭제되면 링크가 끊어져 접근할 수 없게 된다.
  • 원본 파일 내용이 변경되면 링크를 통해 접근해도 변경 사항이 그대로 반영된다.

 

2. 심볼릭 링크와 하드 링크의 차이

심볼릭 링크와 비슷한 하드 링크도 있다. 하드 링크(Hard Link)는 같은 파일 데이터를 가리키는 또 하나의 이름이다.
심볼릭 링크가 ‘원본 파일 경로’를 가리키는 반면, 하드 링크는 원본 파일과 동일한 inode 번호를 공유해서, 사실상 원본과 하드 링크가 동일한 파일로 취급된다.

 

구분 심볼릭 링크 하드 링크
연결 방식 경로(Path) 기반이다 동일한 inode 번호를 공유한다
다른 파티션 가능 여부 가능하다 불가능하다
원본 삭제 시 링크가 깨진다 데이터가 유지된다
파일 크기 원본 경로 길이만큼 차지한다 원본과 동일하다
 
간단히 비유하자면, 하드 링크는 하나의 집에 여러가지 문이 있어서, 같은 데이터로 접근할 수 있는 경로가 여러가지인 것이고, 심볼릭 링크는 특정 경로를 참조하고 있는 문서로 볼 수 있다.
 
 

3. 생성 방법

심볼릭 링크는 ln 명령어의 -s 옵션을 사용해 생성한다.

ln -s [원본경로] [링크경로]

# myfile.txt → link_to_myfile 심볼릭 링크 생성 
ln -s /home/user/myfile.txt /home/user/link_to_myfile
 
실제로 내 Proxmox 에 있는 Ubuntu 서버에서 실습해보면, /home/kang/Documents/workout_api/backup/ 경로 아래에 있는 파일 중 하나에 접근하기 위한 심볼릭 링크를 생성해 본다.
 

 

4. 확인 방법 및 사용

 
ls -l ( ll )
 
  • l로 시작하는 항목이 심볼릭 링크다.
  • 입력한 이름 그대로 생성된다.
  • 뒤에 원본 파일 경로가 표시된다.

- 심볼릭 링크를 파일로 설정한 경우, 실행, cat, vi 등의 명령어로 실행, 내용출력, 편집기 실 등을 수행할 수 있고, 디렉터리인 경우 cd 명령어를 통해 이동할 수 있다. 

 

5. 유용한 사용 사례

  1. 자주 쓰는 디렉터리 바로가기
    • /var/log/nginx를 홈 디렉터리에서 바로 접근할 수 있도록 한다.
      ln -s /var/log/nginx ~/nginx_logs
  2. 버전 관리된 실행 파일 경로 고정
    • /opt/software/app_v2.3 디렉터리를 /opt/software/app_current로 연결한다.
    • 업데이트 시 링크만 새로운 버전 폴더로 변경하면 된다.
  3. 환경 설정 파일 관리
    • 설정 파일을 한 곳에서 관리하고, 각 서비스 디렉터리에서 링크로 참조한다.
    • 예: .vimrc를 여러 서버에서 동일하게 사용한다.
  4. 공유 데이터 접근 경로 단순화
    • 길고 복잡한 경로를 짧게 줄인다.
    • 예: /mnt/storage/projects/2025/important_data를 ~/data로 연결한다.

 

6. 삭제 방법

rm [링크경로]

 

원본 파일이 아닌 링크만 삭제된다. -r 옵션 없이 삭제 가능하다.

 

 

7. 마무리

심볼릭 링크는 경로를 유연하게 관리하고, 시스템 유지보수를 단순화하는 강력한 기능이다. 특히 서버 운영, 개발 환경 설정, 로그 분석 등 다양한 작업에서 시간을 절약할 수 있다. 원본이 변경될 가능성이 있다면 심볼릭 링크 사용을 고려해야 한다. 링크만 변경하면 해당 경로를 사용하는 모든 프로그램에서 즉시 반영된다.