1 분 소요

📝링크

  • 바로가기와 비슷한 개념입니다. 특정 파일 또는 디렉토리에 접근을 쉽게 할 수 있도록 하는 방법입니다.

    파일 시스템이 물리적인 장치인 하드 디스크 상에 저장되어 있는 특정 파일의 위치를 가리키는 것 입니다.

    링크를 사용하는 이유는 첫 번째로 경로단축을 위해 심볼릭 링크를 설정하는 경우가 있습니다.

    또한 데이터를 안전하게 보관하고 싶을 경우에도 링크를 사용하기도 합니다.

파일링크 원리 정리 -I-node 아이노드

  • 리눅으세어 파일이나 디렉터리를 생성하면 I-node라는 번호가 임의로 부여되고 이 번호를 기준으로 관리됩니다. I-node는 리눅스/유닉스 파일 시스템에서 사용하는 자료구조를 말하는데, 파일이나 디렉터리의 여러가지 정보가 담겨있습니다. 각 I-node에는 해당 파일의 소유권, 허가권, 파일 종류 등의 정보가 해당 파일의 실제 데이터가 어디 있는지 위치도 있습니다. 이 번호는 ls -l 명령으로 확인할수 있습니다.

    파일명이 다르더라도 이 번호가 같다면 내부적으로는 같은 파일로 인식됩니다. 이렇게 하나의 파일을 여러 개의 이름으로 관리하거나 디렉터리 접근 경로를 단축하는 형태를 링크라고 부릅니다.

링크에는 두가지 종류가 있습니다.

  • 하드 링크 : 특정 파일 또는 디렉토리에 접근을 쉽게 할 수 있도록 하는 방법입니다. 파일 시스템이 물리적인 장치인 하드 디스크 상에 저장되어 있는 특정 파일의 위치를 가리키는 것 입니다.
  • 심볼릭 링크 : 윈도우의 바로가기 개념과 비슷하며 실질적인 디스크 상의 파일을 가리키는 것이 아니라 파일 시스템 상의특정 파일을 가리키는 것 입니다.

  • 링크 생성 명렁어는 ln 입니다.
    • ln [옵션] [원본] [링크]
    • 옵션을 지정하지 않고 링크 파일을 생성하면 하드 링크를 생성할 수 있습니다.
    • 옵션으로 -s 를 지정하고 링크 파일을 생성하면 심볼릭 링크를 생성할 수 있습니다.

심볼릭 링크와 하드 링크의 차이

  • 모든 파일이나 디렉터리들은 각자 한개씩 inode가 있습니다. 이러한 inode가 모여있는 공간을 inode block 이라고 부릅니다.

    일반적으로 전체 디스크의 1% 정도만 차지하고 나머지는 data block이 차지합니다. data block은 실제 데이터가 저장되어 있는 디스크 공간으로 전체 디스크의 대부분을 차지합니다.

    그림을 보면 원본파일이 inode1을 사용합니다. 만약 여러분이 하드링크를 생상하면 링크파일이 하나만 생성되고 같은 inode1을 사용하게 됩니다. 반면 심볼릭 링크를 생상하면 새로운 inode2가 만들어집니다 데이터는 원본파일과 연결되는 포인터를 통해 단지 연결만 되는 효과를 가지게 됩니다.

    보통 실무에서는 심볼릭 링크를 사용합니다.

댓글남기기