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 다름

'리눅스' 카테고리의 다른 글

Makefile  (0) 2022.03.25