Contents

하드링크, 심볼릭링크

inode

리눅스에는 inode 라는 개념이 있다. inode는 유닉스 계통의 파일 시스템에서 사용하는 자료 구조이다.

모든 파일과 디렉토리는 inode를 하나씩 가지고 있다. 그리고 여기에는 해당 파일의 허가권, 소유권, 파일의 실제 위치 등 중요한 정보들이 들어있다.

https://github.com/YoungEun-IN/youngeun-in.github.io/assets/46465928/b0c87264-3848-40ee-9ccd-254b6e2e6558

inode는 실제 파일의 내용을 갖고 있지는 않다. inode는 데이터의 우편번호 역할을 한다고 볼 수 있다. 즉, 파일의 내용을 갖고 있는 주소를 포함할 뿐이다.

리눅스 파일 링크 종류

하드 링크는 원본 파일과 동일한 inode를 직접적으로 가리킨다. 따라서 원본 파일이 사라지더라도 데이터만 살아 있다면 원본 파일에 접근이 가능하다.

심볼릭 링크(소프트 링크)는 만들게 되면 또 다른 inode를 생성해서 이를 바라본다. 복사 생성된 inode는 포인터를 카리키고, 포인터는 다시 원본 파일을 가리키는 것이다.

하드 링크, 심볼릭 링크 차이점

https://github.com/YoungEun-IN/youngeun-in.github.io/assets/46465928/d31980b0-1f6f-42a8-9006-a024d71c3c3b

하드 링크 소프트 링크
동일한 파일시스템 내에서만 하드링크 생성가능 파일시스템과 대상파일이 존재하는 파일시스템이 달라도 생성가능
디렉터리 링크 불가능 파일이나 디렉토리를 가리킬 텍스트 포인터를 가짐으로써 참조 가능
대상파일과 동일한 inode 번호와 허가권 가짐 대상파일과 심볼릭링크 파일은 서로 inode 번호와 파일허가권이 다름
대상파일을 옮기거나 삭제하더라도 대상파일을 참조 대상 파일의 inode가 아닌 대상 파일의 데이터 경로만을 참조
원본이 삭제되어도 원본과 동일한 내용의 파일을 가지고 있음 원본 파일이 사라지면 해당 데이터에 접근할 수 없음

참고

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%ED%95%98%EB%93%9C-%EB%A7%81%ED%81%AChard-link-%EC%8B%AC%EB%B3%BC%EB%A6%AD-%EB%A7%81%ED%81%ACsymbolic-link-%EC%95%84%EC%9D%B4%EB%85%B8%EB%93%9Cinode#%EC%9D%BC%EB%B0%98_%EB%B3%80%EC%88%98%EC%9D%98_%EA%B0%92_%EB%B3%B5%EC%82%AC_%ED%95%98%EB%93%9C_%EB%A7%81%ED%81%AC