[Linux] 링크

참고교재:

 

이것이 리눅스다 with RedHat CentOS 8 - 예스24

- 리눅스 분야 5년간 부동의 1위,『이것이 리눅스다』최신 CentOS 8을 반영한 개정판 출간!2015년 출간 후 리눅스 도서 분야 부동의 베스트셀러 1위를 지켜오던 『이것이 리눅스다』가 CentOS 8 버전을

www.yes24.com

출처:

Linux part 4. 하드 링크와 심볼릭 링크 : 네이버 블로그 (naver.com)

 

Linux part 4. 하드 링크와 심볼릭 링크

링크 (Link) - 특정 파일 또는 디렉토리에 접근을 쉽게 할 수 있도록 하는 방법 하드 링크 (Hard Link) ...

blog.naver.com


링크

파일의 링크는 하드 링크(Hard Link)와 심볼릭 링크(Symbolic Link 또는 Soft Link) 2가지가 있다. 

  • 하드링크를 생성하면 "하드링크파일" 만 하나 생성되며 같은 inode1을 사용
    (명령 : #ln 링크대상파일이름 링크파일이름)

 

  • 심볼릭 링크를 생성하면 새로운 inode2를 만들고, 데이터는 원본 파일을 연결하는 효과
    (명령 :# ln -s 링크대상파일이름 링크파일이름)

심볼릭 링크는 windows의 바로가기 아이콘과 개념이 비슷하다.

 

하드링크와 심볼릭 링크 생성 실습

1. test 디렉터리를 생성 후 basefile 파일 생성

  • vi 에디터를 통해 "파일 링크를 실습하기 위한 원본 파일입니다. " 입력

2. 하드링크와 심볼릭 링크를 확인

  • ln 명령어와 옵션을 조합해 하드 링크 및 심볼릭 링크 파일을 생성
#ln basefile hardlink		-> 하드링크 생성
#ln -s basefile softlink	-> 심볼릭 링크(=softlink)생성
#ln -il				-> il 옵션은 inode 번호를 제일 앞에 출력
#cat hardlink			->하드링크의 내용 확인
#cat softlink			->심볼릭 링크 내용확인

원본 파일(basefile)은 inode1가 (691882번)으로 지정되어 있다. 그리고 하드 링크 파일(hardlink)도 마찬가지로 inode1(691882번)으로 지정되어 있다. 그러나 심볼릭 링크 파일(softlink)은 indone2 (691841번)으로 다르게 지정되어 있다. 원본 파일(baskfile)과 하드 링크 파일(hardlink)은 Data 블록에 같은 원본 파일 데이터를 사용하므로 크기가 61byte로

동일하며, 심볼릭 링크 파일(softlink)은 별도의 원본 파일 포인터를 갖기 때문에 8byte로 크기가 다르다.

 

파일 이름에서도 심볼릭 링크 파일(softlink)은 원본 파일(basefile)을 지정한다는 의미로 화살표(→)가 표시되어 있다.

 

2.1 원본 파일을 다른곳으로 이동시킨 후 하드 링크 파일과 심볼릭 링크 파일을 확인

#mv basefile ../	->basefile을 앞 디렉터리(..)로 이동
#ls -il
cat bardlink
cat softlink

실습 결과를 보면 하드링크는 디렉터리에서 원본 파일이 없어져도 아무 이상이 없고,

심볼릭 링크는 디렉터리에서 원본 파일이 없어지면 연결이 끊어진다.

 

2.2 원본 파일을 현재 디렉터리로 가져와 다시 한번 확인