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 |