티스토리 뷰
하드링크 vs 소프트링크
[inode]
정의 : Kernel이 관리하고 있는 파일을 위한 메타 데이터
사용자는 file 명을 가지고 파일을 액세스 하려고 하면, 내부적으로는 파일이름과 맵핑된 inode 번호로 맵핑된다.
- inode가 가진 정보
1) 파일 모드(퍼미션)
2) 링크 수
3) 소유자명
4) 그룹명
5) 파일크기
6) 마지막 접근 정보
7) 마지막 수정 정보
8) 아이노드 수정 정보
[하드링크]
하드링크는 원본 파일의 inode의 위치를 가르킨다. 파일명만 다르지 사실상 하드링크, 원본파일을 구분할 수 없다.
(원본과 복사본의 차이가 없다)
왜냐하면 파일 시스템에 있는 데이터를 복사한 것이 아니라, inode 번호만 복사했기 때문이다. 따라서 실제 파일은 1개만 존재하는 셈이 된다.
[소프트링크]
윈도우 시스템에서 제공하는 바로가기 기능과 매우 유사.
원본 파일에 대한 정보가 포함되어 있지 않고, 원본 파일 위치에 대한 포인터만 포함한다. 즉 새로운 inode를 가진 링크파일이 생성된다.
(자료 출처 : https://koromoon.blogspot.com/2018/05/inode-symbolic-link-hard-link.html)
[하드링크 소프트링크 API]
[하드링크 생성]
hello_world 원본 파일의 inode와 새로 생성된 하드링크인 hello_world_hardlink의 inode가 1845604로 동일한것을 확인할 수 있다. 즉 동일한 inode를 가르키고 있다. 또한 Links : 2가 되어있는 것을 볼 수 있다. inode를 가리키고 있는 것이 2개임을 확인할 수 있는 부분이다.
[소프트링크 생성]
소프트링크는 보는것과 같이 -> 화살표 표시가 들어가 있다. hello_world_symlink 파일이 hello_world를 가리키고 있는 것이다. 소프트링크 파일은 파일권한 맨 앞자리에 'l' 이 들어가 있다. 그리고 inode 또한 원본 파일과 다르다는 것을 확인할 수 있다.
[소프트링크 하드링크 생성 소스코드]
'Back-end' 카테고리의 다른 글
작성해야할 개발 기술 (0) | 2021.01.11 |
---|---|
[리눅스] 파일 속성 (0) | 2020.04.27 |
C언어 문자자료형 사용하기 (0) | 2020.01.05 |
파일 포지션 (0) | 2019.12.22 |
[루비] 예외 처리 (0) | 2019.02.13 |
- Total
- Today
- Yesterday
- Inception
- docker
- 월급쟁이부자들
- pop_back
- front
- 깃허브
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 항해플러스백엔드
- github
- 열반스쿨기초반
- 월부닷컴
- Spring boot
- 유즈케이스
- resize
- 2023년
- push_back
- 항해솔직후기
- 내년은 빡세게!!
- Use case
- 인셉션
- 개발자 회고
- 폭포수
- 부동산공부
- 파라메터
- 항해플러스후기
- 깃
- 관계대수
- 도커
- 재테크공부
- GIT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |