일단 i-node가 뭔지부터 알고 가보자❗️


i-node란?

파일이 생성될 때 마다 고유의 번호가 주어지고, 그 번호를 i-node라고 한다.

inode에는 파일의 권한, 형태, 고유 번호, 소유자 및 그룹, 원복 데이터의 주소 등 파일에 대한 모든 것들이 기록되어 있는데, 유닉스 계열의 운영체제에서는 모든 파일을 inode로 관리를 하게 된다.

이러한 inode는 ls -i 명령어로 확인이 가능하다

Untitled

그렇다면 하드 링크는 뭘까?🧐


하드링크는 한 파일을 복사를 한다고 생각하면 된다. 하지만, cp명령어와 같은 것은 아니기 때문에 주의해야한다.

Untitled

inode는 우리가 흔히 알고 있는 파일의 데이터를 가리키게 되고 하드링크inode를 가리키게 된다. 즉, 일반적으로 우리가 확인할 수 있는 파일들은 모두 하드링크라고 보면 편하다.

따라서, 기본적으로 모든 파일들은 적어도 하나 이상의 하드 링크를 가지게 되고, 하드 링크 수가 하나도 없게 되면 이것이 곧 파일의 삭제를 의미한다.

Untitled

위와 같이 ln 명령어를 통하여 a라는 파일에 대한 하드링크를 만들게 되면, inode가 동일한 것을 확인할 수 있다. cp 명령어의 경우는 각자 다른 inode를 가리키게 되기 때문에 이 점이 cp명령어하드링크의 차이라고 할 수 있다. 아래 그림을 통해 차이점을 비교할 수 있을 것이다.

Untitled