리눅스/리눅스 기초

ln 명령어, 링크 만들기

Linuxpia 2024. 12. 14. 19:52
반응형

ln 명령어, 링크 만들기

ln 명령어는 파일이나 디렉터리(디렉터리)의 하드 링크(Hard Link) 또는 심볼릭 링크(Symbolic Link, Soft Link)를 생성하는 데 사용됩니다. 링크는 파일 시스템에서 특정 파일이나 디렉터리를 참조할 수 있는 또 다른 이름을 제공합니다.


기본 형식

ln [옵션] 원본_파일 링크_이름

 


링크의 종류

1. 하드 링크(Hard Link)

  • 원본 파일과 동일한 inode 번호를 공유.
  • 원본 파일이 삭제되더라도 하드 링크는 여전히 데이터에 접근 가능.
  • 동일한 파일 시스템 내에서만 생성 가능.

2. 심볼릭 링크(Symbolic Link, Soft Link)

  • 원본 파일의 경로를 참조하는 파일(별칭) 생성.
  • 원본 파일이 삭제되면 심볼릭 링크는 깨진 링크(Broken Link)가 됨.
  • 파일 시스템 경계를 넘어 생성 가능.

주요 옵션

옵션 설명
-s 심볼릭 링크 생성
-f 기존 링크나 파일이 있으면 강제로 덮어쓰기
-v 실행 과정을 상세하게 출력
-T 명시적으로 링크 이름을 디렉터리가 아닌 파일로 지정

사용 예제

1. 하드 링크 생성

ln original.txt hardlink.txt
  • original.txt의 하드 링크 hardlink.txt를 생성.
  • 두 파일은 동일한 데이터를 참조하며, 둘 중 하나를 수정하면 다른 파일에도 반영.

하드 링크

2. 심볼릭 링크 생성

ln -s /path/to/original.txt symlink.txt
  • /path/to/original.txt를 참조하는 심볼릭 링크 symlink.txt를 생성.
  • symlink.txt는 원본 파일의 경로를 참조하며, 원본 파일이 없어지면 링크가 깨짐.

심볼릭 링크

3. 디렉터리 심볼릭 링크 생성

ln -s /home/user/documents link_to_documents
  • /home/user/documents 디렉터리를 참조하는 심볼릭 링크 link_to_documents를 생성.

4. 강제로 기존 링크 덮어쓰기

ln -sf original.txt existing_link.txt
  • 이미 존재하는 existing_link.txt를 삭제하고 새로운 링크를 생성.

5. 실행 과정 확인

ln -sv /etc/nginx/sites-available/default default_link
  • 심볼릭 링크를 생성하며 실행 과정을 출력:
    'default_link' -> '/etc/nginx/sites-available/default'

파일 삭제 시의 동작

하드 링크

  • 원본 파일이 삭제되더라도 하드 링크는 여전히 파일 데이터를 참조합니다.
  • 파일 데이터는 모든 하드 링크가 삭제된 후에야 제거됩니다.

심볼릭 링크

  • 원본 파일이 삭제되면 심볼릭 링크는 깨진 상태가 됩니다.
  • 링크 자체를 삭제하려면 rm 명령어를 사용:
    rm symlink.txt

정리

  • ln 명령어는 파일과 디렉터리에 하드 링크와 심볼릭 링크를 생성하는 강력한 도구입니다.
  • 하드 링크는 파일 데이터의 직접적인 복제본을 생성하고, 심볼릭 링크는 경로를 참조합니다.
  • 작업 환경에 따라 적합한 링크 방식을 선택하여 효율적인 파일 관리를 할 수 있습니다.