본문 바로가기
카테고리 없음

[Linux] I-node & 링크 파일 (소프트 링크=심볼릭, 하드링크)

by 떵해이 2020. 11. 22.
300x250

파일에 대해 먼저 어떤 것이 있는지 개략적으로 이해하시면 리눅스 공부하실 때 수월합니다.

파일이나 권한 등 아래에 나오는 것들 다 목록에 찾으면 공부하실 수 있습니다.

 

○ I-node 란?

    ▷ Index Node 약자

 

    ▷ 리눅스의 파일, 디렉토리들은 생성하면 i-node 값을 가진다.

 

    ▷ 리눅스 계열의 OS에서 각 파일이 만들어질 때 OS에 의해 부여되는 고유 번호

 

    ▷ 가지고 있는 데이터(파일)을 빠르게 찾기 위해 순서대로 정리한 것

 

 

아래 그림을 참고하면 됩니다. 요런 형태입니다.

 

● I-node 구성

파일들의 정보가 inode입니다.

파랑색으로 파일이름이 되어있으면 디렉토리 입니다. (설정에 따라 색이 다를 수 있습니다.)

 

I-node의 구성은 맨 앞부터

 

▷ 파일형식 (d디렉토리, -일반파일, l링크파일, b블록파일, c문자파일, p파이프파일, s소켓파일)

권한(user, group, other)

▷ 링크 수

▷ 파일 소유자

▷ 파일 그룹

▷ 파일 크기

▷ 파일 만들어진 시간

▷ 파일 이름

 

구성은 이렇고 I-node의 고유 번호도 있습니다.

 

-i 옵션을 추가하셔서 리스트를 보시면 나옵니다.

# ls -il 명령어로 확인

아래 화면에서 맨 앞에 나오는 것이 I-node 고유 번호 입니다.

 

○ 소프트 링크 파일 vs 하드 링크 파일

위의 그림을 참고하여 이해하면 좋습니다.

이 글에서 블록에 대한 설명은 생략하겠습니다.

파일 시스템편을 보시면 블록에 대해 나옵니다.

 

 

    ● 소프트 링크란 ?

 

      ▷ 같은 말로 심볼릭 링크 라고도 함

 

      ▷ 실체가 없고 원본과 연결된 파일 (=어떤 파일과 연결된 상징적인 파일)

 

      ▷ 쉽게 말해 window의 바로 가기 개념이랑 유사

 

      ▷ 소프트 링크를 설정하면 i-node가 새로 만들어짐

 

      ▷ 위의 그림처럼 원본을 가리키는 포인터가 포함된 특수 파일을 생성

 

      ▷ 소프트 링크는 편집을 하면 참조하고 있는 파일도 같이 편집이 이루어짐

 

      ▷ 소프트 링크를 삭제하면 링크만 삭제되고 파일은 남아있음

 

      ▷ 원본 파일이 삭제되면 링크 파일이 깨짐

 

 

    ● 하드 링크란 ?

 

      ▷ 실체가 있고 원본과 연결된 파일

 

      ▷ i-node 번호에 직접 연결되어 만듬

 

      ▷ 하드 링크는 이름만 다른 파일이 생성된다. (파일 경로 다르면 이름도 같을 수 있음)

 

      ▷ 이름 빼고 모든 속성이 똑같고, 링크된 파일 속성 변경하면 다른 파일도 속성 변경된다.

 

      ▷ 원본 파일이 삭제되어도 링크 파일이 남아있다.

 

 

     링크 파일 생성

 

      ▷ # In [옵션] [기존 파일 경로] [링크 파일의 경로] : 명령어로 심볼릭 링크(=소프트 링크) 생성

 

          (옵션을 사용하지 않을 경우에는 하드 링크 파일이 생성됩니다.)

 

      ▷ 옵션 소개 (자주 쓰는 3개만 소개)

          -s (symbolic or soft) : 링크할 원본이 심볼릭 링크된 파일이면, 그 파일을 링크한다.

                                             심볼릭 링크 생성 할 때 사용하는 옵션

 

          -d (directory) : 디렉토리의 하드 링크를 생성(root계정만 가능)

 

          -f (force) : 링크 파일 존재 시에 삭제하고 생성

 

          -b (backup) : 대상 파일이 이미 존재할 경우에 백업 파일을 만든 후에 링크 파일 생성

 

 

    ● 하드 링크와 소프트 링크 차이점

 

                하드 링크                                        소프트 링크 

      ▷ 파일에만 링크 가능                        파일 or 디렉토리 링크 가능

 

      ▷ 연결되어 있는 파일이 뭔지               연결되어 있는 파일 찾기 쉬움

          알기 힘듬

 

      ▷ 같은 파일 시스템끼리만                 다른 파일 시스템 간에서도 작성 가능

          작성 가능

 

      ▷ 원본과 i-node 같음                        원본과 i-node 다름

 

 

★ 링크를 사용하는 이유

  - 경로 단축을 위해 심볼릭 링크 설정

  - 데이터 안전하게 보관하고 싶을 경우

  - 통일성을 위한 경우도 있다고 함

 

파일 이름으로 구분

      ▷ window에는 파일 확장자 정말 중요하다.

          .txt(텍스트)이냐 .avi(동영상)이냐 에 따라 아예 달라지기 때문이다.

 

      ▷ 리눅스에서는 확장자를 나타내는 이름이 없다.

          그래서 파일 이름이 굉장히 중요하다.

 

      ▷ 파일 이름으로 어떤거에 사용하는지 알 수 있게 이름을 지어야한다.

 

      ▷ /etc에 이동하여 ls 명령어로 파일들을 확인해보면서 직접 눈으로 봐야 이해가 빠릅니다.

 

예시) .conf / .cfg 는 configuration(설정)의 약어입니다.

       

        .d는 두가지의 경우로 나누어 집니다.

        ① 디렉토리 파일(d)에 .d가 있으면 디렉토리(directory)라는 뜻입니다.

       

        ② 실행 파일(-)에 .d가 있으면 데몬(daemon)라는 뜻입니다.

 

        .srv 는 service와 같은 의미로 데몬이랑 유사하게 쓰입니다.

        (데몬과 서비스 거의 같다고 생각하시고 공부하시면 됩니다.)

 

        .repos 는 저장소 라는 뜻입니다.

 

반응형

댓글