예전 포스팅 (~2018)

[Linux] Hardlink & symbolic link

akaranch 2021. 10. 1. 13:42

#6 하드 링크와 심볼릭 링크

 

하드링크 와 심볼릭 링크의 차이점을 알아보겠습니다.

우선 cat명령어로 test.txt파일을 만들어 줍니다.

파일 내용은 자유롭게 저는 HI로 하겠습니다.

 

링크파일을 만드는 명령어

ln [-옵션] 대상파일 이름 

옵션

-s [심볼릭 링크]

 

하드링크 파일과 심볼릭 링크 파일을 만들어서 inode를 비교해보겠습니다.

 

 

여기서 하드링크 파일은 원본파일과 inode 번호가 동일하고 심볼릭 링크 파일은 inode 번호가 다릅니다.

일단 링크가 재대로 걸렸는지 확인해 보겠습니다.

 

잘 걸렸습니다. 이제 차이를 알기 위해서 원본파일을 rm 명령어로 지워보겠습니다.

 

 

원본파일을 지울시 심볼릭 링크 파일은 목표를 잃고 방황하기때문에 동작하지 않지만

하드 링크 파일은 원본 파일의 내용과 inode를 복사했기 때문에 아무 문제 없습니다.

 

심볼릭링크파일은 그저 원본을 가르키는 포인터 정도의 개념이라고 생각하시면 되겠습니다.

 

 

다시 심볼릭 링크파일을 사용하고 싶으면 test.txt파일을 만들면 됩니다.

 

이론은 이렇습니다.

 

 

심볼릭 링크 파일은 원본파일의 포인트를 달고 새로운 inode이 생성된 파일로 저장된 마치 "바로가기" 같은 파일이고,

하드 링크 파일은 원본의 inode를 공유하기 때문에 원본 그 자체가 됩니다.