본문 바로가기
Linux/Linux

Linux) 심볼릭 링크와 하드 링크

by LILO 2021. 5. 15.
반응형

Symbolic Link and Hard Link

 

 

 

심볼릭 링크(소프트 링크)란?  아주 쉽게 생각하면 윈도우(Windows) 운영체제의 바로가기와 비슷한 기능입니다.

여기서 재밌는 점은 i-node까지 같게 따라오지 않고 i-node는 다르게 가진다는 점이고 포인터 역할만 하는 친구입니다.

 

 

 

i-node(아이노드)란?   리눅스 Kernel이 관리하는 파일을 위한 Metadata로 파일 마다 고유한 i-node를 가집니다.

 

※ i-node 내용: 퍼미션(권한), 링크 수, 소유자 명, 그룹 명, 파일 크기(용량), 마지막 접근 및 수정 정보, i-node 수정 정보

 

 

하드 링크란?  얼핏 보면 복사본처럼 보일 수도 있지만 전혀 다릅니다. 링크이기 때문에 독립된 파일로 가져오는 것이 아니고 i-node 번호만 복사해오는 것이라 수정을 하다보면 수정된 내용이 그대로 저장되는 것을 볼 수 있습니다.

 

절대 CP(복사)와 햇갈리지 마시길 바랍니다.

 

 

 

 

Symbolic Link and Hard Link  -  LAB

 

심볼릭 링크와 하드 링크의 경우 생성 방법이 어렵지 않습니다. 사실 그래서 명령어를 외우는 것보다 해당 개념들을 더 확실하게 아는 것이 중요합니다. 두 링크 다 "ln" 명령에 옵션만 추가해줍니다.

 

# man ln

 

 

 

"ln -OPTION  <링크 걸 디렉토리 혹은 파일>  <링크로 만들 디렉토리 혹은 파일명>" 

저는 둘 다 절대 경로를 넣어서 입력하는 편입니다. 어차피 결과적으로 링크가 걸리기만 하면 성공입니다.

ln이라는 것은 알고 있어도 무관한 이유가 어차피 "help"나 "man"에 아주 친절하게 나와있기 때문입니다. 

 

 

 

심볼릭 링크를 생성하기 전에 디렉토리와 파일을 미리 준비합니다.

 

# mkdir /root/link ; mkdir /root/link/hard ; mkdir /root/link/soft
# cd /root/link/hard
# touch example
# cd /root/link/soft
# touch example

 

 

 

이제 Hard Link를 걸어주려고 합니다.

# ln  /root/link/hard/example  /mnt/hard

 

성공적으로 링크가 걸렸습니다. 앞에서 설명했듯이 i-node 번호가 똑같은 것을 볼 수 있습니다. 이로 인해 CP(복사)를 한 것과 아예 다르다는 것을 볼 수 있습니다.

 

 

Hard Link 테스트를 위해 내용을 넣어주고 파일을 열어봅니다.

 

# echo" hard link" > example 
# cat /root/link/hard/example
# cat /mnt/hard

 

 

복사본은 링크가 아니고 독립적인 파일이나 디렉토리이기 때문에 원본을 수정을 한다고 그 내용이 절대 반영이 되지 않습니다. 하지만 Link 파일은 원본의 내용을 바로 반영합니다.

 

 

 

 

이제 Soft Link를 걸어줍니다.

 

  # ln -s  /root/link/soft/example  /mnt/soft

 

 

i-node가 다른 것을 확인했습니다. 

 

 

반응형