개념 사전 · 개념
하드 링크와 심볼릭 링크
Hard Link · Symbolic Link · Symlink · 소프트 링크
는 같은 파일 객체를 가리키는 디렉터리 이름을 추가하는 기능이고, 는 다른 경로를 담은 별도 파일 객체이다. 둘 다 복사본 생성과 다르며 대상의 이동·삭제와 에서 동작이 달라진다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 하나의 파일을 여러 이름으로 접근하게 한다.
- 경로의 위치를 간접 참조하여 배포 버전이나 디렉터리 구조를 연결한다.
- 이름 삭제와 파일 데이터 수명의 차이를 설명하는 기준이 된다.
02어떤 순서로 동작하나
- 링크 이름 탐색
프로그램이 링크를 포함한 경로를 열면 커널이 해당 디렉터리 항목을 찾는다.
- 참조 형태 구분
하드 링크이면 바로 같은 를 참조하며, 심볼릭 링크이면 별도 객체에 담긴 대상 경로를 읽는다.
- 대상 경로 해석
의 상대 경로는 링크가 놓인 디렉터리를 기준으로 해석하고 필요한 나머지 경로 탐색을 이어간다.
- 접근 또는 오류
대상을 찾고 권한을 만족하면 열지만 대상이 없으면 끊어진 링크 오류가 난다. 이름 삭제 뒤에도 다른 하드 링크나 열린 참조는 남을 수 있다.
03먼저 알아둘 용어와 구성요소
- 는 동일한 에 새 디렉터리 항목을 추가한다.
- 두 이름 사이에는 원본과 복사본이라는 구별이 없으며 한쪽으로 내용을 바꾸면 다른 쪽에서도 같은 내용이 보인다.
- 일반 파일의 는 같은 파일 시스템 안에서 만들며, 일반 사용자가 디렉터리를 로 연결하는 방식은 허용되지 않는다.
- 는 대상 경로 문자열을 담는 별도 객체다. 대상 파일이 없어져도 링크 객체는 남아 끊어진 링크가 된다.
- 상대 경로를 담은 는 링크가 놓인 디렉터리를 기준으로 해석하므로 현재 셸 디렉터리와 혼동하면 안 된다.
- 와 열린 참조가 모두 사라질 때 저장 공간을 회수할 수 있다.
04예제로 따라가기
- a.txt에 b.txt를 만든 뒤 a.txt만 지우면 b.txt 이름으로 같은 내용을 계속 읽을 수 있다.
- current가 releases/v2를 가리키는 상대 라면 기준은 current의 부모 디렉터리이고 명령을 실행한 셸 위치가 아니다.
- 같은 경로 이름을 삭제 후 다시 만들면 새 가 생길 수 있어 기존 가 가진 fd와 새 이름은 다른 객체를 가리킬 수 있다.
05혼동하기 쉬운 점과 확인 기준
- 구성 요소가 없거나 의 대상이 없으면 이름 탐색이 실패한다. 화면에 링크 이름이 보인다는 것만으로 최종 파일의 존재가 증명되지 않는다.
- 같은 이름을 재생성했는데 서비스 출력이 보이지 않으면 열린 fd의 대상과 현재 경로의 를 비교한다. 이름이 같아도 기존 서비스가 삭제된 이전 객체를 계속 쓸 수 있다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.