[용어 정리] 하드링크 & 심볼릭링크 차이

[용어 정리] 하드 링크 & 심볼릭 링크 차이

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

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

따라서 특정 데이터에 접근할 때, 심볼릭 링크를 통해 접근할 경우 다시 원본 파일을 거치게 된다.
때문에 원본 파일이 사라질 경우 해당 데이터에 접근할 수 없다.


리눅스 inode

리눅스에는 inode라는 개념이 있다.
이는 리눅스(유닉스) 파일 시스템에서 사용되는 자료 구조이다. inode 파일 혹은 디렉터리의 각종 정보들을 담고 있다. 모든 파일과 디렉터리는 한개씩 inode를 가지고 있으며 여기에는 해당 파일의 허가권, 소유권, 파일의 실제 위치 등 중요한 정보들이 들어있다.

inode가 모여 있는 공간을 inode block이라고 한다.
inode block이 차지하는 공간은 매우 작으며, 실제 데이터가 저장되는 block이 디스크의 대부분을 차지한다. 
inode는 우편번호 역할을 한다고 볼 수 있다.


리눅스 링크 명령어 ln

링크를 생성하는 명령어는 ln이다.
기본적으로 ln 명령어만 사용할 경우, 하드링크를 생성한다.
심볼릭 링크(소프트링크)를 생성하기 위해서는 -s 옵션을 줘서 "ln -s 대상파일"과 같은 식으로 실행한다.


출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?