OS/Linux2012. 8. 17. 15:58

Unix와 Linux에서 사용하는 자료구조인 i-node에 대해 알아보겠습니다.


i-node는 파일 시스템 내부에 파일을 유지하는 중요한 정보를 구조체 형태로 갖고있습니다.

각 i-node는 i-node 번호로 구분됩니다.

기본적으로 i-node는 파일의 실제 이름과 파일의 실제 내용을 제외한 파일에 대한 모든 정보를 담고 있습니다.

i-node에 담긴 중요한 정보들 몇가지를 소개하겠습니다.

▷ i-node 번호

▷ stat C 함수에서 사용되는 파일 유형을 이해하기 위한 모드 정보

▷ 파일 링크 숫자

▷ 소유주 UID

▷ 소유주 GID

▷ 파일크기

▷ 파일이 사용하는 실제 블록 개수

▷ 마지막으로 수정된 시각

▷ 마지막으로 접근한 시각

▷ 마지막으로 변경된 시각


Linux에서는 모든 디바이스나 디렉토리를 전부 파일개념으로 인식하기 때문에 전부 i-node를 부여받습니다.

i-node는 파일의 생성과 동시에 임의로 부여됩니다.

만약 i-node가 같은 파일이 있다면 파일 이름이 다르더라도 같은 파일을 가리키고 있는 것이 됩니다.

i-node 번호 확인은 명령어 'ls -i'를 통해 확인할 수 있습니다.


링크의 개념을 모르시면 다음 글을 읽고 오세요.

 -> http://slimv.tistory.com/entry/SymbolicHard-link


copied는 target에 대해 Hard link가 걸린 상태입니다.

i-node를 확인해보니 copied와 target이 177427로 i-node가 같습니다.


copied는 target에 대해 Symbolic link가 걸린 상태입니다.

확인해보니 copied와 target의 i-node가 서로 다른것을 볼 수 있습니다.

이는 copied가 target의 i-node를 참조하는 것이 아니라 target 파일을 참조하고 있기 때문입니다.


i-node를 이용한 파일 삭제


find -inum [i-node number] -exec rm -f {} \;


'OS > Linux' 카테고리의 다른 글

setuid & setgid & sticky bit  (0) 2012.08.20
LD_PRELOAD  (0) 2012.08.18
Symbolic/Hard link  (0) 2012.08.17
Posted by slimV