링크

신명철·2022년 2월 21일
0

링크

파일의 링크에는 두가지 종류가 있음

  1. 하드 링크
  2. 심볼릭 링크

하드 링크

  • 하드 링크 파일만 하나 생성되고 같은 inode 를 사용한다.
  • OS 자체에서 많이 사용한다. 사용 빈도 적음
  • 명령 : #ln 링크대상파일이름 링크파일이름

심볼릭 링크

  • Windows의 바로가기의 개념과 비슷하다.
  • 심볼릭 링크는 새로운 inode 를 만들고, Data 블록은 원본 파일을 참조한다.
  • 하드 링크보다 많이 사용함
  • 명령 : #ln -s 링크대상파일이름 링크파일이름

inode 블록 ?

inode 는 크게 두 부분으로 나뉘어 진다.

  • 파일 정보를 저장하는 부분
    • 파일 종류, 파일 접근 권한, 파일 크기, 소유자, 접근 및 수정 시간 등의 정보를 저장한다.
    • 즉, 사용자가 ls -l 로 확인할 수 있는 정보를 말한다.
  • 실제로 저장되어 있는 데이터 블록의 주소
    • Direct Block 과 Indirect Block, Double Indirect Block 으로 구분된다.
    • Direct Block
      • 데이터 블록에 대한 주소를 직접 가지고 있다
    • Indirect Block, Double Indirect Block
      • 데이터 블록에 대한 주소를 갖고 있는 블록에 대한 주소를 가지고 있다.

예제

  • basefile 을 만들었다.

  • 소프트링크(softlink)와 하드링크(hardlink)를 basefile 과 링크시켰다.
  • ls -li : -li는 inode의 인덱스 값도 확인할 수 있는 옵션이다
    • softlink 의 inode 는 917620 이지만, hardlink 의 inode 는 917623 으로 basefile 의 inode 와 같은 inode 를 참조하고 있는걸 확인할 수 있다.

  • basefile 을 다른 디렉터리로 옮겼다.
  • hardlink 는 같은 inode 값을 갖기 다른 디렉터리에 있어도 basefile 을 확인할 수 있지만, softlink 는 다른 inode 값을 갖고 있기 때문에 같은 디렉터리에 없으면 원본 파일인 basefile를 확인할 수 없다.
profile
내 머릿속 지우개

0개의 댓글