i-node, hard link, symbolic link
2022. 3. 25. 06:56ㆍ리눅스
i-node
i-node란 index-node의 줄임말로써,
파일을 빠르게 찾기 위한 index가 부여되어있고, 파일에 대한 정보를 가지고 있는 데이터이다.
파일이나 디렉토리는 각자의 i-node를 갖고있다.
ls -i [파일이름] 명령을 통해 i-node 값(index 값)을 확인할 수 있다.
또한, i-node는 한 파일이 갖는 모든 데이터 블록을 가리키는 포인터들을 포함한다.
hard link
hard link란 원본 파일의 i-node를 가리키는 link file을 만드는 것이다.
따라서 시스템상의 같은 파일에 대한 다른 명칭이 존재하게 되는 것이다.
한 파일을 변경하면 hard link된 다른 파일 역시 변경되게 된다.
이는 실제로 같은 i-node를 가리키기 때문에 당연한 일이다.
ln [원본파일] [생성할 파일] 명령을 통해 hard link로 파일을 생성할 수 있다.
symbolic link
symbolic link란 바로가기의 개념으로 생각하면 된다.
link로 생성한 파일은 고유의 i-node를 생성하지만, 그 i-node가 원본 파일의 i-node를 가리키게된다.
원본 파일에 대한 포인터만 갖고 있는 것이다.
ln -s [원본파일] [생성할 파일] 명령을 통해 symbolic link로 파일을 생성할 수 있다.
hard link vs symbolic link
hard link | symbolic link |
파일에만 링크 | 파일, 디렉토리에 링크 |
존재하지 않는 파일에 링크 불가능 | 존재하지 않는 파일에 링크 가능 |
link된 파일 파악 어려움 | link된 파일 파악 쉬움 |
같은 파일 시스템 내에서만 작성 가능 | 다른 파일 시스템에서도 작성 가능 |
원본 파일과 i-node 같음 | 원본 파일과 i-node 다름 |