리눅스에서 하드 링크와 심볼릭 링크 이해하기
리눅스 파일 시스템을 이해하는 데 있어서 '하드 링크'와 '심볼릭 링크'는 중요한 개념입니다. 이 글에서는 이 두 종류의 링크가 어떻게 다른지, 그리고 각각 언제 사용되는지에 대해 설명하겠습니다.
하드 링크란?
하드 링크는 원본 파일과 동일한 파일 시스템 내의 데이터 블록에 대한 직접적인 링크입니다.
특징:
- 원본 파일과 같은 inode 번호를 공유합니다.
- 원본 파일을 삭제해도 링크된 파일의 데이터는 유지됩니다.
- 같은 파일 시스템 내에서만 생성 가능합니다.
- 디렉토리에 대한 하드 링크는 대부분의 시스템에서 생성할 수 없습니다.
사용 예시:
echo "Hello, this is a test file." > example.txt ln example.txt example_hardlink.txt
심볼릭 링크란?
심볼릭 링크는 원본 파일이나 디렉토리에 대한 경로를 가리키는 파일입니다.
특징:
- 원본 파일의 경로를 가리키는 참조 링크입니다.
- 원본 파일이 이동되거나 삭제되면 심볼릭 링크는 더 이상 유효하지 않습니다.
- 다른 파일 시스템에 있는 파일이나 디렉토리에 대해서도 링크를 생성할 수 있습니다.
- 디렉토리에 대해서도 심볼릭 링크를 생성할 수 있습니다.
사용 예시:
ln -s example.txt example_symlink.txt
차이점 요약
- 하드 링크는 원본 파일과 동일한 데이터와 inode를 공유하는 반면, 심볼릭 링크는 원본 파일의 경로를 참조합니다.
- 하드 링크는 원본 파일이 삭제되어도 데이터가 유지되지만, 심볼릭 링크는 원본 파일이 삭제되면 더 이상 유효하지 않습니다.
- 하드 링크는 같은 파일 시스템 내에서만 생성할 수 있으나, 심볼릭 링크는 파일 시스템을 넘나들며 생성할 수 있습니다.
주석: inode란?
- inode (Index Node): 리눅스 및 유닉스 파일 시스템에서 파일의 메타데이터를 저장하는 데이터 구조입니다.
- inode에는 파일의 크기, 소유자, 권한, 파일이 저장된 위치 등의 정보가 포함됩니다.
- 파일 시스템 내에서 각 파일은 고유한 inode 번호를 가지며, 이를 통해 파일 시스템이 파일을 식별합니다.
결론
하드 링크와 심볼릭 링크는 각각의 사용 사례와 장단점이 있습니다. 파일을 관리하고 참조할 때 이들의 특징을 이해하고 적절히 사용하는 것이 중요합니다.
'computer science' 카테고리의 다른 글
| cs - 유닉스에서 기본 명령어 및 -r 옵션 (0) | 2023.12.24 |
|---|---|
| cs - 부분적 함수종속이란? : 예시로 보는 정규화 과정 (2) | 2023.12.20 |
| cs -진폭편이변조(ask),주파수편이변조(fsk),위상편이변조(psk) (0) | 2023.08.11 |
| cs - HDLC프로토콜 (0) | 2023.08.11 |
| cs - PDU와 세그먼트,패킷,프레임 (0) | 2023.08.11 |