ln 명령어

리눅스를 사용하다 보면 특정 파일을 여러 곳에서 참조해야 하거나, 긴 경로의 파일을 짧은 이름으로 연결해 사용하고 싶은 경우가 많습니다. 윈도우의 '바로가기'와 유사하지만 훨씬 강력한 기능을 제공하는 것이 바로 리눅스 ln 명령어입니다. 오늘은 파일 관리의 핵심인 하드 링크심볼릭 링크의 차이를 명확히 이해하고 실무에 적용하는 방법을 알아보겠습니다.


1. 리눅스 ln 명령어란?

ln은 'Link'의 약자로, 리눅스 파일 시스템에서 하나의 파일을 여러 개의 이름으로 가리키게 만드는 명령어입니다. 링크를 사용하면 중복된 데이터를 생성하지 않고도 파일을 효율적으로 관리할 수 있습니다. 리눅스에는 크게 두 종류의 링크가 존재합니다.

2. 하드 링크와 심볼릭 링크 비교

두 링크 방식은 데이터 저장 방식인 Inode(아이노드)를 다루는 방식에서 큰 차이를 보입니다.

[표 1] 하드 링크와 심볼릭 링크 상세 비교
구분 하드 링크 (Hard Link) 심볼릭 링크 (Symbolic Link)
핵심 원리 원본과 동일한 Inode 공유 원본 경로를 담은 새로운 파일 생성
원본 삭제 시 데이터 접근 가능 (원본과 대등) 연결 끊김 (Dangling Link 발생)
디렉토리 링크 생성 불가 (일반적 용도) 생성 가능
파일 시스템 동일 파티션 내에서만 가능 다른 파티션/장치 간 가능

3. ln 명령어 기본 문법 및 주요 옵션

기본적인 사용법은 ln [옵션] [원본] [링크이름] 순서입니다.

  • ① 하드 링크 생성: ln original.txt hardlink.txt
  • ② 심볼릭 링크 생성: ln -s original.txt softlink.txt

실무에서 자주 쓰이는 옵션 체크리스트

  • -s: 가장 많이 쓰이는 옵션으로 심볼릭 링크를 생성합니다.
  • -f: 대상 파일이 이미 존재할 경우 강제로 삭제 후 생성합니다.
  • -i: 삭제 여부를 사용자에게 확인합니다.
  • -v: 링크 생성 과정을 상세히 출력합니다.

4. 15년 차 전문가의 실무 활용 팁

실무에서 ln -s는 소프트웨어 업데이트 시 매우 유용합니다. 예를 들어, myapp_v1.0myapp_v2.0이 있을 때, 서비스는 myapp_current라는 심볼릭 링크를 바라보게 설정합니다. 업데이트 시 링크만 교체하면 서비스 중단 없이 버전을 전환할 수 있습니다.

주의사항: 심볼릭 링크를 만들 때는 가급적 절대 경로를 사용하는 것이 좋습니다. 상대 경로로 생성할 경우 링크 파일을 다른 디렉토리로 이동시키면 연결이 깨질 위험이 크기 때문입니다.

요약 및 실행 가이드

  1. 간단한 바로가기가 필요하거나 디렉토리를 연결할 때는 ln -s를 사용하세요.
  2. 원본 파일이 지워져도 데이터가 보존되어야 한다면 하드 링크가 정답입니다.
  3. ls -li 명령어를 통해 링크된 파일들의 Inode 번호를 직접 확인해 보세요.

연습이 답입니다! 지금 터미널을 열고 테스트 파일을 만들어 링크를 생성해 보세요.

댓글 쓰기

다음 이전