일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- centOS
- 도커 이미지
- ios
- AWS
- 클라우드
- Swift
- boj
- 인프라
- Python
- docker
- 네트워크
- 도커 명령어
- devops
- 부스트코스
- kubernetes
- os
- swift 클로저
- 컨테이너
- 프로세스
- C++
- 도커 컨테이너
- centOS7
- NGINX
- k8s
- 도커
- 운영체제
- 리눅스
- 데브옵스
- 쿠버네티스
- linux
- Today
- Total
귀염둥이의 메모
[Linux / CentOS 7] 아이노드 (i-node) / 하드 링크, 심볼릭 링크 본문
아이노드 (i-node)
- i-node 는 전통적인 UNIX 계통 파일 시스템에서 사용하는 자료 구조입니다
- 파일 시스템에서 파일이나 디렉토리는 고유한 i-node 를 갖고 있으며 i-node 번호로 구분이 가능합니다
- 사용자가 파일에 액세스하기 위해서 파일 이름을 사용하지만 내부적으로는 디렉토리 테이블에 저장된 i-node 번호로 매핑됩니다
- ls -i [파일 or 디렉토리] 명령어로 i-node 번호 확인이 가능합니다
i-node 에 포함된 정보들
- 파일모드 (퍼미션)
- 링크 수
- 소유자명
- 그룹명
- 크기
- 주소 (섹터 위치)
- 마지막 접근 정보
- 마지막 수정 정보
- i-node 수정 정보
i-node 포인터 구조를 통해서 파일의 실제 데이터가 저장된 블록의 정보를 포함하여 파일의 메타 데이터 정보만 저장시킵니다
하드 링크 (Hard Link)
- 새로운 i-node 생성되지 않습니다 (원본과 같은 i-node 테이블)
- 디렉토리는 하드링크가 불가능합니다
- 다른 파티션에 링크 불가능합니다
- 원본파일을 제거해도 액세스 가능합니다
하드 링크 생성 명령어
ln [원본 파일] [링크 파일]
심볼릭 링크 (Symbolic Link)
- 새로운 i-node 를 가진 링크 파일이 생성됩니다
- 디렉토리, 파일 둘다 가능합니다
- 다른 파티션에 링크 가능합니다
- 원본 파일을 제거하면 액세스 불가능합니다
심볼릭 링크 생성 명령어
ln -s [원본 파일 절대 경로] [링크 파일]
하드 링크 vs 심볼릭 링크
구분 | 하드 링크 | 심볼릭 링크 |
명령어 | ln | ln -s |
접근 방식 | 원본과 같은 i-node 테이블 | 원본과 다른 테이블 |
디스크 공간 | 필요 없음 | 약간의 공간 필요 |
디렉토리 | 불가능 | 가능 |
파일 시스템 | 동일한 파일 시스템만 가능 | 다른 파일 시스템 가능 |
원본 파일 제거 | 이상 없음 | 접근 불가능 |
링크 파일 실습
먼저 "test link" 라는 내용을 저장한 파일 fileA 을 생성합니다
/tmp 디렉토리에 하드 링크 파일(hard.txt), 소프트 링크 파일(soft.txt)을 생성합니다
ls -li 명령어로 확인하면 원본(fileA)과 하드 링크(hard.txt)는 i-node 번호가 같습니다
fileA 와 soft.txt 는 i-node 번호가 다릅니다
/tmp 디렉토리에 대한 링크파일을 사용자 홈 디렉토리에 temp 라는 이름으로 생성합니다
원본 fileA 를 삭제한 후 링크 파일을 확인합니다
하드 링크 파일은 이상 없지만 소프트 링크 파일은 문제가 생깁니다
temp 디렉토리에 새로운 파일(new_file) 을 하나 만들고 /tmp 디렉토리에서 확인합니다
temp 디렉토리를 통해 만들었지만 /tmp/new_file 로 /tmp 를 통해서 접근이 가능합니다
'Infra & Devops > Linux' 카테고리의 다른 글
[Linux / CentOS 7] 프로세스(process), 작업 (job) 환경 (ps, jobs, fg, bg, kill, nice, renice ...) (0) | 2021.08.21 |
---|---|
[Linux / CentOS 7] 아카이브 파일, tar 명령어 (0) | 2021.08.21 |
[Linux / CentOS 7] 리다이렉션 (Redirection) & 파이프 (Pipe) (0) | 2021.08.21 |
[Linux / CentOS 7] grep 명령어 사용 (0) | 2021.08.21 |
[Linux / CentOS 7] shell에서 인용부호 (", ', `) 차이점 (0) | 2021.08.21 |