본문 바로가기
지식 공유/리눅스

리눅스 링크(link)

by missio 2019. 8. 12.

안녕하세요 미씨오입니다.

리눅스에 링크라는 개념이 있는데요. 음..

저희가 주로 사용하는... 바탕화면에 아이콘있잖아요? 바로가기 아이콘

링크가 우리가 사용하는 바로가기라고 생각하시면 편할거 같습니다.

 

링크는 두개로 나뉘는데요 하드 링크와 소프트 링크가 있습니다.

 

● 하드 링크(hard link)

하드 링크 파일은 원본파일의 I-node를 참조하는 파일입니다. 파일의 정보를 담고 있는 원본 파일의 I-node를 공유하기 때문에 사실상 파일명만 다를 뿐 같은 파일을 가리킨다고 볼 수 있습니다. 

 

따라서 하드 링크 파일의 내용을 수정하게 되면 원본 파일의 내용도 수정되며(정확히는 어느쪽을 수정해도 하나의 파일을 수정한 것), 반대로 원본 파일을 수정해도 하드 링크 파일의 내용이 수정된 것을 볼 수 있습니다.

 

하드 링크 명령어 : ln [원본파일] [하드링크명] (ex ln original /home/missio/hardlink)

 

I-node를 공유하므로 실제 하나의 파일을 가리키며, I-node 식별 번호와 소유권, 허가권등의 정보 또한 같은것을 알 수 있습니다. 파일명만 다를 뿐 내부적으로는 하나의 파일입니다.

 

● 소프트 링크(soft link)

심볼릭 링크라고도 하며, 원본 파일과 별개의 I-node를 갖는데요. 간단히 별도의 데이터 라는 뜻입니다.

바로가기 파일과 비슷하다고 생각하시면 됩니다.

원본 파일이 삭제된 경우에는 심볼릭 링크 파일의 포인터가 가리키는 내용이 사라지게 됩니다.

 

소프트 링크 명령어 : ln -s [원본파일] [소프트 링크명] (ex ln -s orginal /home/missio/hardlink)

 

각 파일의 I-node가 다르기 때문에 원본 파일을 다른 장소로 이동한다면 링크가 깨지기 때문에 접근이 불가합니다.

다시 원본 파일을 기존 위치에 넣으면 링크가 정상적으로 돌아옵니다!

 

이상으로 링크에 대한 간단한 설명이였습니다 ㅎㅎ