본문 바로가기
공부/정보보안기사

<정보보안기사> 1. 시스템 이론 - 하드 링크(hard link)와 심볼릭 링크(symbolic link)

by Richard_Hoon 2024. 11. 16.
반응형

 

 

링크(link)는?

 

 - 링크는 쉽게 말하면 바로가기 아이콘과 비슷한 맥락

 - 파일 시스템에서 동일한 파일이나 디렉터리에 대한 또 다른 이름을 부여하여 여러 경로에서 접근할 수 있도록 해주는 기능

 - 링크에는 하드 링크(hard link)와 심볼릭 링크(symbolic link)로 구분됨

 

 

 

링크 입력 문법

 

문법 ln [-s] 소스 파일(or 디렉터리) 타겟 파일(or 디렉터리)

1   2              3                              4

 

ln  링크를 생성하는 명령
-s 심볼릭 링크를 생성한다는 의미, 안 쓰면 하드 링크로 생성
소스 파일 or
소스 디렉터리
원본이 될 파일 or 디렉터리를 의미. 타겟 파일 or 디렉터리가 이 데이터에 접근함
타겟 파일 or
타겟 디렉터리
소스 파일 or 디렉터리에 접근해주는 포인터 역할. 타겟에는 실제 데이터를 저장하는 것이 아님.

 

 

 

하드 링크(hard link)

 

 - 원본 파일과 완전히 동일한 파일을 가리킴

 - 하드 링크는 원본 파일과 같은 inode 번호를 공유하여 파일 시스템 내에서 동일한 데이터 블록을 가르킴

 - 하드 링크 중 하나를 삭제해도 원본 파일이 삭제되지 않고, 모든 하드 링크가 삭제되어야만 원본 파일이 삭제됨

 - 동일한 파일 시스템 내에서만 생성 가능하며, 디렉터리에는 하드 링크가 불가능함

 

 ln source.txt link.txt
'source.txt'파일에 대한 하드 링크 'link.txt' 생성

 

 

 

심볼릭 링크(symbolic link)

 

 - 원본 파일의 경로를 가리키는 파일로 디렉터리에도 링크가 가능함(inode 번호가 아닌 경로 기반임)

 - 다른 파일 시스템에 있는 파일도 가리킬 수 있음(하드 링크의 단점을 보완)

 - 심볼릭 링크를 삭제해도 원본 파일은 삭제되지 않음. 하지만 원본 파일이 이동되거나 삭제되면 링크가 끊어짐

 

 ln -s source.txt link.txt
'source.txt'파일에 대한 심볼릭 링크 'link.txt' 생성

 

 ln -s /usr/local/bin/* ~/bin
/usr/local/bin 디렉터리에 있는 모든 파일을 사용자 홈 디렉터리의 bin 디렉터리에 심볼릭 링크로 연결
= /usr/local/bin 디렉터리에 있는 파일을 ~/bin 에서도 마치 같은 파일인 것 처럼 사용할 수 있음
ex) /usr/local/bin에 gcc, git, python 등의 실행 파일이 있다면, 위 명령 실행 시 ~/bin 디렉터리에 gcc, git, python 등의 심볼릭 링크가 생성됨. 이후 ~/bin 디렉터리에서 gcc 명령을 실행하면 마치 /usr/local/bin/gcc를 실행한 것과 같은 효과를 얻을 수 있음

 

 

반응형

댓글