Linuxpia/리눅스 사용 팁

[리눅스 팁] 심볼릭 링크와 하드 링크

Linuxpia4U 2024. 8. 21. 03:24
반응형

심볼릭 링크와 하드 링크

리눅스 파일 시스템에서 심볼릭 링크(Symbolic Link)와 하드 링크(Hard Link)는 파일이나 디렉터리와의 참조를 관리하는 두 가지 중요한 개념입니다. 이 둘은 파일 시스템에서 파일을 다루는 방법에서 차이를 보입니다.

하드 링크 (Hard Link)

하드 링크는 파일 시스템의 특정 파일에 대한 직접적인 참조입니다. 여러 파일 이름이 동일한 데이터 블록을 가리킬 수 있으며, 그 결과 원본 파일과 동일한 파일로 취급됩니다.

특징:

  • 같은 파일 인덱스 노드(Inode): 하드 링크는 원본 파일과 동일한 Inode 번호를 가집니다. 즉, 같은 데이터 블록을 공유합니다.
  • 원본 파일 삭제 시 영향 없음: 원본 파일을 삭제해도 하드 링크로 연결된 파일은 그대로 유지되며, 데이터도 유지됩니다.
  • 동일한 파일: 하드 링크는 원본 파일과 구별되지 않으며, 동일한 파일로 취급됩니다. 두 파일 중 하나를 수정하면, 다른 파일에도 동일하게 반영됩니다.
  • 동일한 파일 시스템 내에서만 사용 가능: 하드 링크는 동일한 파일 시스템 내에서만 만들 수 있습니다.

예시:

ln file1.txt hardlink.txt

위 명령어는 file1.txt에 대한 하드 링크인 hardlink.txt를 생성합니다.

하드링크로 생성된 파일은 원본과 같은 인덱스번호를 가짐

심볼릭 링크 (Symbolic Link)

심볼릭 링크는 원본 파일에 대한 경로를 참조하는 특별한 유형의 파일입니다. 심볼릭 링크는 실제 파일이 아니며, 원본 파일의 위치를 가리키는 경로를 저장합니다.

특징:

  • 다른 Inode 번호: 심볼릭 링크는 원본 파일과 다른 Inode 번호를 가지며, 파일 자체가 아닌 파일의 경로를 가리킵니다.
  • 원본 파일 삭제 시 링크가 깨짐: 원본 파일이 삭제되면 심볼릭 링크는 깨져서 "끊어진 링크(broken link)"가 됩니다.
  • 파일 시스템 간 링크 가능: 심볼릭 링크는 다른 파일 시스템에 있는 파일이나 디렉터리도 링크할 수 있습니다.
  • 디렉터리 링크 가능: 심볼릭 링크는 파일뿐만 아니라 디렉터리도 링크할 수 있습니다.

예시:

ln -s /path/to/file1.txt symlink.txt

위 명령어는 /path/to/file1.txt에 대한 심볼릭 링크인 symlink.txt를 생성합니다.

심볼릭 링크에 의한 다른 인덱스 번호가 매겨진 symlink.txt 파일

주요 차이점 요약

  • Inode: 하드 링크는 원본 파일과 동일한 Inode를 가지며, 심볼릭 링크는 다른 Inode를 가집니다.
  • 파일 삭제: 원본 파일이 삭제되면 하드 링크는 여전히 유효하지만, 심볼릭 링크는 깨지게 됩니다.
  • 링크 가능 대상: 하드 링크는 동일한 파일 시스템 내에서만 사용 가능하지만, 심볼릭 링크는 파일 시스템 경계를 넘어 사용할 수 있습니다.

정리

  • 하드 링크는 파일 시스템 내에서 동일한 파일을 참조하는 또 다른 이름입니다. 원본 파일이 삭제되더라도 데이터는 유지됩니다.
  • 심볼릭 링크는 파일이나 디렉터리의 경로를 참조하는 파일로, 원본 파일이 삭제되면 링크가 깨집니다.

이 두 가지 링크 타입을 이해하고 적절히 사용하면 파일 시스템을 더욱 유연하게 관리할 수 있습니다.

반응형