TJ_Log

[Linux] 리눅스의 아이노드(inode), 심볼릭 링크(Symbolic link), 하드링크(Hard link)에 대해 본문

STUDY/Linux

[Linux] 리눅스의 아이노드(inode), 심볼릭 링크(Symbolic link), 하드링크(Hard link)에 대해

PTJ 2022. 5. 26. 15:56

1. 아이노드(inode)란?

- 아이노드(inode)는 유닉스 계통의 파일 시스템에서 사용하고 있는 자료 구조로 파일 또는 디렉터리들의 고유한 정보가 담겨져 있는 중요한 자료구조 입니다.

 

- 파일 시스템 내에 파일과 디렉토리는 고유한 inode를 가지고 있으며 inode번호를 통해 구분이 가능합니다.

 

- 사용자가 파일또는 디렉터리에 접근하려고 하면 파일 이름을 사용하지만 내부적으로 파일 이름은 먼저 디렉토리 테이블에 저장된 inode 번호로 매핑되며 그 다음 해당 inode번호를 통해 해당 inode 정보에 액세스 됩니다.

 

inode 정보 설명
inode 번호 inode 고유 식별 번호
파일 모드 16비트 플래그로 이루어진 파일의 실행 권한.
소유자, 그룹, 기타 사용자의 권한과 파일 형식, 실행 프래그 등을 나타냄
링크 수 이 inode에 대한 참조 수
소유자 id 파일의 소유자 id
그룹 id 파일 소유자의 그룹 아이디
파일 크기 파일의 크기
파일 주소 실 데이터가 나오는 파일 주소
마지막 접근 정보 마지막으로 파일에 접근한 시간
마지막 수정 마지막으로 파일을 수정한 시간
아이노드 수정 마지막으로 아이노드를 수정한 시간

 

2. 심볼릭 링크(Symbolic Link)

- 심볼릭 링크는 원본 파일의 inode를 가리키는 정보가 있는 파일입니다. => 윈도우에 바로가기와 유사함

 

- 원본 파일에 대한 정보가 포함되어 있지 않고 파일 위치를 가르키는 포인터만 포함된 새로운 inode를 가진 링크 파일이 생성됩니다.

 

- 파일 시스템 또는 디렉토리에 연결할 경우 사용합니다.

 

- 원본 파일을 삭제하면 해당 파일을 가르키던 심볼릭 링크는 동작을 안하게 됩니다.

 

- 명령어 ln -s [원본 파일명] [링크 파일명]

 

3. 하드 링크(Hard Link)

- 하드 링크는 원본 파일의 inode위치를 가르키는 포인터로 심볼릭과는 달리 새로운 inode 생성이 없습니다.

 

- 일반적인 복사와는 다르게 데이터를 복사한 것이 아니라 inode번호만 복사합니다. 즉 시스템의 데이터는 여전히 1개만 존재 합니다.

 

- 저장 공간, 성능, 안정성 측면에서도 하드링크가 심볼릭링크보다 우수하며 링크파일을 원본 파일을 다른 위치로 옮겨도 상관없이 동작하게 됩니다. 반면 심볼릭 링크는 동작이 안됩니다.

 

- 원본 파일을 삭제해도 하드 링크는 inode위치를 가르키므로 하드링크는 동작하게 됩니다.

 

- 명령어 ln [원본 파일명] [링크 파일명]

 

4. 그림 요약