개념 사전 · 개념

하드 링크와 심볼릭 링크

Hard Link · Symbolic Link · Symlink · 소프트 링크

는 같은 파일 객체를 가리키는 디렉터리 이름을 추가하는 기능이고, 는 다른 경로를 담은 별도 파일 객체이다. 둘 다 복사본 생성과 다르며 대상의 이동·삭제와 에서 동작이 달라진다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 하나의 파일을 여러 이름으로 접근하게 한다.
  • 경로의 위치를 간접 참조하여 배포 버전이나 디렉터리 구조를 연결한다.
  • 이름 삭제와 파일 데이터 수명의 차이를 설명하는 기준이 된다.

02어떤 순서로 동작하나

  1. 링크 이름 탐색

    프로그램이 링크를 포함한 경로를 열면 커널이 해당 디렉터리 항목을 찾는다.

  2. 참조 형태 구분

    하드 링크이면 바로 같은 를 참조하며, 심볼릭 링크이면 별도 객체에 담긴 대상 경로를 읽는다.

  3. 대상 경로 해석

    의 상대 경로는 링크가 놓인 디렉터리를 기준으로 해석하고 필요한 나머지 경로 탐색을 이어간다.

  4. 접근 또는 오류

    대상을 찾고 권한을 만족하면 열지만 대상이 없으면 끊어진 링크 오류가 난다. 이름 삭제 뒤에도 다른 하드 링크나 열린 참조는 남을 수 있다.

03먼저 알아둘 용어와 구성요소

는 동일한 에 새 디렉터리 항목을 추가한다.
두 이름 사이에는 원본과 복사본이라는 구별이 없으며 한쪽으로 내용을 바꾸면 다른 쪽에서도 같은 내용이 보인다.
일반 파일의 는 같은 파일 시스템 안에서 만들며, 일반 사용자가 디렉터리를 로 연결하는 방식은 허용되지 않는다.
는 대상 경로 문자열을 담는 별도 객체다. 대상 파일이 없어져도 링크 객체는 남아 끊어진 링크가 된다.
상대 경로를 담은 는 링크가 놓인 디렉터리를 기준으로 해석하므로 현재 셸 디렉터리와 혼동하면 안 된다.
와 열린 참조가 모두 사라질 때 저장 공간을 회수할 수 있다.

04예제로 따라가기

  • a.txt에 b.txt를 만든 뒤 a.txt만 지우면 b.txt 이름으로 같은 내용을 계속 읽을 수 있다.
  • current가 releases/v2를 가리키는 상대 라면 기준은 current의 부모 디렉터리이고 명령을 실행한 셸 위치가 아니다.
  • 같은 경로 이름을 삭제 후 다시 만들면 새 가 생길 수 있어 기존 가 가진 fd와 새 이름은 다른 객체를 가리킬 수 있다.

05혼동하기 쉬운 점과 확인 기준

  • 구성 요소가 없거나 의 대상이 없으면 이름 탐색이 실패한다. 화면에 링크 이름이 보인다는 것만으로 최종 파일의 존재가 증명되지 않는다.
  • 같은 이름을 재생성했는데 서비스 출력이 보이지 않으면 열린 fd의 대상과 현재 경로의 를 비교한다. 이름이 같아도 기존 서비스가 삭제된 이전 객체를 계속 쓸 수 있다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.