시스템(Linux)

링크파일에 대해 알아보겠습니다.

forward error correction Circle 2023. 2. 14. 19:54
반응형

Ⅰ. 링크 파일이란?

링크 파일은 연결로 지정된 파일 및 디렉터리에 접근하여 읽고 쓰는 프로그램을 뜻합니다. 디렉터리가 길거나, 파일명이 길 경우 유용하게 사용됩니다.
윈도우 운영체제에서 바로가기 형식과 동일하며 변경하여 사용 할 수 있습니다.
심볼릭 링크들을 다루어야 하는 프로그램들( 백업 유틸리티)은 이들을 직접 식별하고 조작할 수도 있습니다.

Ⅱ. 링크파일의 종류

링크 파일에는 심볼릭 링크와 하드 링크 2가지 종류로 구분됩니다. 2가지 링크 개념에 대해서 설명하기 전에 inode라는 용어에 대해서 간단하게 알고가야 이해가 쉽습니다. inode는 리눅스 파일 시스템에서 사용되는 용어로 inode에는 inode 에는 파일 소유자의 사용자 ID, 파일 소유자의 그룹  ID, 파일 크기, 파일이 생성된 시간, 최근 파일이 사용된 시간, 최근 파일이 변경된 시간, 파일이 링크된 수, 접근 모드, 데이터 블록 주소에 대한 정보를 가지고 있습니다.

모든 파일과 디렉토리는 inode를 가지고 있으며 여기에는 해당 파일,디렉토리의 여러 권한 정보,파일의 실제위치등의 정보를 담고 있다. inode가 모여있는 공간을 inode block이라고 하며 inode block이 차지하는 공간은 매우작고 실제 데이터가 저장되는 block이 용량 대부분을 차지한다.

즉 , inode+ data block이 하나의 파일 또는 디렉토리가 됩니다. inode에는 파일에 대한 정보를 담고있고 inode가 실 데이터를 가리키고 있다고 생각하면 됩니다.

Ⅲ. 심볼릭 링크

심볼릭 링크는 다른 파일이나 디렉터리에 대한 경로로서 운영 체제가 자동으로 해석하고 추적하는 텍스트 문자열을 포함합니다. 이러한 다른 파일이나 디렉터리를 대상(target)으로 부릅니다. 심볼릭 링크는 대상으로부터 독립적으로 존재하는 두 번째 파일입니다.즉, 원본 inode가 아닌 복사본 inode를 하나 더 만드는 원리입니다. 심볼릭 링크가 삭제되더라도 실제 대상은 영향을 받지 않습니다. 심볼릭 링크가 대상을 지시하면 나중에 대상이 이동되거나 이름이 바뀌거나 지워지더라도 심볼릭 링크는 자동으로 업데이트되거나 삭제되지는 않지만 지속적으로 오래된 대상(현재는 존재하지 않는 위치나 파일)을 가리킨 채로 존재합니다. 이동되었거나 존재하지 않는 대상을 가리키는 심볼릭 링크들은 broken, orphaned, dead, dangling 등의 용어로 불리기도 합니다.

Ⅳ. 하드 링크

하드 링크는 다른 볼륨이나 파일 시스템 상의 경로를 연결하지 않지만 심볼릭 링크는 링크와 대상이 존재하는 볼륨의 어느 파일이나 디렉터리라도 가리킬 수 있습니다. 원본 inode를 가리키는 링크 파일을 생성한다. 결국 원본파일 (inode + block)을 가리키는 포인터가 2개가 됩니다. 원본 파일 또는 하드링크한 파일을 수정하면 둘 다 수정이 되고, 둘중 하나를 삭제하더라도 원본파일이 존재한다면 데이터가 유지됩니다. 하드 링크는 무조건 기존의 파일만을 가리키는 반면 심볼릭 링크는 어느 것을 가리키지 않는 임의의 경로를 포함할 수도 있다. 완전히 삭제를 하려면 두개의 파일(원본 파일, 하드 링크 파일) 모두 삭제를 해야한다

Ⅴ. 링크파일 사용방법

 

ln -s '원본 파일명' '심볼릭 링크 파일명' 심볼릭 링크 파일 생성 명령어
ln '원본 파일명' '하드링크 파일명' 하드 링크 파일 생성 명령어

옵션설명

옵션명 설명
-b 링크파일 생성시에 대상파일이 이미 존재하면 백업파일을 만든 후에 링크파일을 생성
-d 디렉토리에 대한 하드링크파일생성을 가능하게 함.
단 root 권한으로 수행하더라도 시스템의 권한제한으로 인하여 실패할 가능성이 높음
. (-F--directory 는 -d 와 동일함)
-f 대상 파일이 존재할 경우에 대상파일을 지우고 링크파일을 생성
-i 대상 파일이 존재할 경우에 대상파일을 지울것인가를
확인요청 (--interactive 와 동일)
-s 심볼릭 링크파일을 생성
-S 백업파일 생성시에 원하는 접미사(suffix)를 지정할 수 있음
-t 링크파일을 생성할 디렉토리를 지정

심볼릭 링크 파일의 소유자를 바꾸려면 chown에 -h 옵션을 붙여야 합니다.
-h 옵션을 붙이지 않으면 심볼릭 링크가 가리키는 대상에 적용됩니다.

* chown -h 사용자:그룹 심볼릭링크파일

반응형