본문 바로가기
[Linux]

ln이란 무엇인가?

by SAMSUNG Metaverse-Cloud 2023. 9. 6.
728x90

 

ln이란 무엇인가?

리눅스에는 파일 링크라는 개념이 있다.

여기서 ln 역시 link의 줄임말이라고 할 수 있다.

이는 A에 저장된 실행파일을 A까지 가지 않고 다른 경로에서 실행할 수 있게 하는 것이다.

윈도우에 바로가기 어플리케이션이라고 생각하면 된다.

링크를 사용하는 이유는 먼저 경로의 단축을 위해서이다. 

리눅스 부팅은 /etc/rc.d라는 디렉토리 밑에 있지만 etc 밑에 링크가 있어 바로 etc 하위로 실행할 수 있다.

두번째는 데이터의 안전한 보관이다.

원본의 위치를 쉽게 노출시킨다면 파일의 변조에 취약하며 파일이 위험해 진다. 그런 것을 방지하며 여러 사람이 한 서버를 사용할 때 파일의 안전성을 보장할 수 있다.

마지막으로는 파일의 정합성을 유지시키기 위해 사용한다. 

 

 

ln 종류

링크에는 하드링크와 심볼릭 링크가 존재한다. 

하드 링크는 원본과 동일한 inode를 가리킨다.  inode는 파일과 디렉토리에 하나씩 가지고 있으며 파일의 허가, 소유, 실제 위치등의 정보가 담겨있다. 

그러므로 하드링크는 똑같은 inode를 가리키기에 원본이 삭제된다 하더라도 데이터가 있다면 원본파일에 접근이 가능한 것이다. 

동일한 파일시스템 내에서만 생성이 가능하며 파일만 링크를 생성할 수 있다. 대상파일의 위치를 이동시키더라도 대상 파일을 참조한다. 

 

심볼릭 링크는 다른 inode를 생성해서 그것을 바라본다. 다른 inode는 포인터를 가리키며 포인터가 원본을 바라본다. 

파일시스템과 대상파일이 존재하는 파일 시스템이 달라도 생성이 가능하며

파일이나 디렉토리의 참조가 가능하다. 포인터를 생성하는 것이기 때문에 가능한 것이다.

대상파일과 링크파일은 inode의 번호 및 허가권에 차이가 있다. 

inode 자체가 원본 데이터 경로만을 바라보므로 원본이 삭제된다면 접근이 불가능하다. 

728x90

'[Linux]' 카테고리의 다른 글

프록시란 무엇인가?  (1) 2023.09.13
Linux 디스크 마운트 하기  (21) 2023.09.11
이중화 - DRBD란 무엇인가?  (0) 2023.09.02
우분투 22.04 MariaDB 특정버전 설치 방법  (15) 2023.08.29
Network - Ping 칠 때 DUP! 뜨는 현상  (0) 2023.08.24