Aller au contenu principal

10. Create and Manage Hard Links


파일 시스템 기본 개념​

Linux의 모든 파일은 inode로 표현됩니다 — 권한, 수정 시간, 데이터 블록 위치 등의 메타데이터를 저장하는 데이터 구조입니다. inode 번호가 기술적 참조 역할을 하고, 파일명은 이 inode에 매핑됩니다.

family_dog.jpg 같은 파일을 생성하면 stat 명령어로 inode 세부 정보를 확인할 수 있습니다. "Links: 1"은 하나의 하드 링크(원본 파일명)가 존재함을 나타냅니다.

하드 링크 생성 및 사용​

하드 링크를 사용하면 콘텐츠를 복제하지 않고 여러 디렉토리 항목이 동일한 파일 데이터를 참조할 수 있습니다. 디스크 공간을 절약하면서 사용자 간 데이터를 공유할 때 유용합니다.

Aaron의 사진 디렉토리를 Jane의 위치에 복사하면 데이터가 중복되지만, 하드 링크를 생성하면 그렇지 않습니다:

ln /home/aaron/Pictures/family_dog.jpg /home/jane/Pictures/family_dog.jpg

이 명령어 실행 후 두 경로 모두 동일한 inode를 참조하며, stat 출력에 "Links: 2"가 표시됩니다.

하드 링크 삭제​

한 사용자가 파일에 대한 참조(하드 링크)를 삭제해도 다른 링크를 통해 데이터에 접근할 수 있습니다. 마지막 하드 링크가 삭제될 때만 파일 데이터가 제거됩니다.

하드 링크와 권한 관리​

하드 링크는 동일한 inode를 공유하므로, 하나의 링크에서 권한을 수정하면 모든 링크에 영향을 미칩니다. 그룹 멤버십과 파일 권한을 조정하여 사용자 간 일관된 접근을 보장하세요.

하드 링크의 제한 사항​

두 가지 주요 제약이 있습니다:

  1. 하드 링크는 파일에만 적용되며, 디렉토리에는 적용 불가
  2. 하드 링크는 동일한 파일시스템 내에 있어야 함

다른 파일시스템이나 디렉토리에 하드 링크를 생성하려 하면 오류가 발생합니다.