inode란
파일 시스템 내의 특정 파일이나 디렉토리에 대한 메타데이터(파일 이름) 같은 것을 저장하는 고유한 자료 구조이다
구조
파일 이름은 디렉토리 내에 저장되고 실제 파일 내용과 메타데이터는 inode를 통해 관리된다
명령어
ls -i로 inode 번호를 볼 수 있고,df -i로 inode 남은 개수를 확인할 수 있다
Hard link
원본과 동일한 inode를 공유하여 원본 삭제 시에도 데이터가 유지되는 직접적인 파일 복사본이다
정의: 원본 파일과 동일한 inode(데이터 위치 정보)를 가리키는 또 다른 파일 이름
장점: 원본 파일이 삭제되어도 하드 링크 파일로 데이터 접근 가능.
Soft link
원본의 경로만을 저장하는 바로가기 파일이다(데이터도 저장이 된다)
정의:
원본 파일의 경로(path)를 가리키는 별도의 파일.
특징:
윈도우의 바로가기와 유사하며, 파일 크기가 작고, 자체 inode를 가짐.
장점:
다른 파티션 및 디렉토리에도 링크 생성 가능
구분
하드 링크 (Hard Link)
소프트 링크 (Soft/Symbolic Link)
Inode
원본과 동일
원본과 다름
원본 삭제
데이터 접근 가능
원본 링크 깨짐
디렉토리
링크 불가
링크 가능
파일 크기
원본과 동일
매우 작음
명령어
ln [원본] [링크]
ln -s [원본] [링크]
원본 파일이란: 가공,편집,압축 등 수정 작업을 전혀 거치지 않은 상태의 최초 생성된 디지털 데이터이다
디스크가 가득 찼을 때 rm으로 파일을 삭제를 했는데도 불구하고 df -h로 디스크 용량을 보면 줄어들지 않았을 때 어떤 문제로 줄어들지 않는 이유
리눅스에서 파일은 이름과 실제 데이터가 분리되어 있다
rm을 했을 때: 파일 이름만 지워진다
파일이 진짜 지워지는 조건: 해당 파일을 가리키는 이름이 하나도 없고 그 파일을 열어서 사용중인 프로세스도 없어야한다
파일 이름은 눈에 없어서 안보이지만 디스크 공간은 여전히 차지하고 있는 상태이다
해결 방법