본문 바로가기

Programming/Linux

[Linux/CentOS] 링크(Link)

파일의 링크

1. 하드 링크(Hard Link)

  • 원본 파일이 inode1을 사용할 때, 하드 링크를 생성하면 '하드 링크 파일'만 하나 생성되며, 같은 inode1을 사용
  • 하드 링크 생성문
    ln 링크대상파일이름 링크파일이름

2. 심볼릭 링크(Symbolic Link 혹은 Soft Link)

  • 원본 파일에 심볼릭 링크 생성시 새로운 inode2를 만들고, 데이터는 원본 파일과 연결되는 효과를 가짐
  • 사용자는 주로 심볼릭 링크를 사용함
  • Windows 바로 가기 아이콘도 심볼릭 링크에 해당됨
  • 심볼릭 링크 생성
    ln -s 링크대상파일이름 링크파일이름

inode

- 리눅스/유닉스의 파일 시스템에서 사용하는 자료구조

- 파일이나 디렉터리의 여러 가지 정보가 존재함

- 모든 파일이나 디렉터리는 각자 한 개씩 inode가 있으며, 각 inode에는 해당 파일의 소유권, 허가권, 파일 종류 등의 정보와 해당 파일의 실제 데이터 위치(주소)가 존재함

- inode가 모여있는 공간 == inode 블록

- 일반적으로 전체 디스크 공간의 1% 정도 차지함


예제를 통한 정리

파일명이 [basefile]이라는 파일이 존재한다고 했을 때

 

(1) 하드 링크와 소프트 링크의 생성

  • ln basefile hardlink                    => 하드 링크 생성
  • ln -s basefile sfotlink                  => 심볼릭 링크(소프트 링크) 생성
  • ls -il                                       => -il 옵션은 inode 번호를 제일 앞에 출력
  • cat hardlink                              => 하드 링크 내용 확인
  • cat softlink                               => 소프트 링크 내용 확인 

하드 링크와 소프트 링크의 inode 번호가 상이함

- 원본 파일(basefile)과 하드 링크 파일(hardlink)는 데이터 블록에 같은 원본 파일 데이터 사용

- 심볼릭 링크 파일(softlink)는 별도의 원본 파일 포인터를 갖기에 파일 크기가 다름

--> 심볼릭 링크로 접근해 파일을 수정할 경우 접근 포인터가 원본을 가르키기에 원본 파일이 수정됨

--> 실제로 심볼릭 링크 파일은 원본 파일을 지정한다는 의미로 화살표( → )가 표시됨

 

(2) 원본 파일의 이동

  • mv basefile ../                       상위 폴더로 이동
  • ls -il                                   확인
  • cat hardlink
  • cat softlink

- 원본 파일 이동에 따른 영향 : hardlink  X , softlink O

- softlink는 디렉터리에서 원본 파일이 사라지면 연결이 끊어짐. [그런 파일이나 디렉터리가 없습니다.]라는 문구가 뜸.