Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

리눅스에서 하드링크(Hard Link)와 소프트링크(Soft Link)의 차이점 본문

AWS

리눅스에서 하드링크(Hard Link)와 소프트링크(Soft Link)의 차이점

H.S-Backend 2024. 9. 25. 16:14

1. 하드링크 (Hard Link)

1.1 완벽하게 동일한 파일 생성

  • 하드링크는 원본 파일과 동일한 파일을 생성하며, 파일의 데이터는 공유됩니다.

1.2 inode 넘버 공유

  • 하드링크는 같은 inode 넘버를 공유합니다. 즉, 하드링크와 원본 파일은 동일한 데이터 블록을 가리키게 됩니다.

1.3 원본 파일 삭제 시 문제 없음

  • 원본 파일이 삭제되어도 하드링크로 생성된 파일에는 아무런 문제가 발생하지 않습니다. 이는 하드링크가 파일 데이터를 직접 가리키기 때문입니다.

1.4 하드링크 생성 방법

  • 설명: ln 명령어를 사용하여 하드링크를 생성할 수 있습니다.

1.5 하드링크의 단점

1.5.1 동일한 파티션에서만 사용 가능

  • 하드링크는 같은 파티션에서만 작동합니다. 서로 다른 파티션에서는 하드링크를 생성할 수 없습니다.

1.5.2 동일한 파일 시스템에서만 사용 가능

  • 하드링크는 동일한 파일 시스템 내에서만 생성 가능합니다. 서로 다른 파일 시스템 간에는 하드링크를 사용할 수 없습니다.

2. 소프트링크 (Soft Link, 심볼릭 링크)

2.1 파일 이름을 참조

  • 소프트링크는 원본 파일의 이름을 참조하는 방식입니다. 데이터 자체를 가리키지 않고, 파일 이름을 포인터로 사용합니다.

2.2 포인터를 통한 참조

  • 소프트링크는 파일 이름을 참조하는 포인터가 생성되며, 이는 파일의 데이터 영역을 직접 가리키지 않습니다. 원본 파일이 필요할 때마다 원본 파일의 경로로 접근합니다.

2.3 원본 파일 삭제 시 링크 파일에 오류 발생

  • 원본 파일이 삭제되면 소프트링크는 Broken Link 상태가 되어, 링크가 가리키는 경로에 파일이 존재하지 않으므로 에러가 발생합니다.

2.4 소프트링크 생성 방법

  • 설명: ln -s 명령어를 사용하여 소프트링크를 생성할 수 있습니다.

3. 하드링크와 소프트링크의 비교

하드링크 (Hard Link)소프트링크 (Soft Link)

기능 파일 데이터 자체를 참조 파일 이름을 참조
inode 원본 파일과 같은 inode를 공유 별도의 inode를 사용
원본 파일 삭제 시 하드링크는 문제없이 파일 접근 가능 원본 파일 삭제 시 소프트링크는 깨진 링크가 됨
파일 시스템 제약 동일한 파일 시스템 및 파티션에서만 사용 가능 다른 파일 시스템, 파티션 간에도 사용 가능
생성 방법 ln 원본파일 사본파일 ln -s 원본파일 소프트링크파일

4. 정리

  • 하드링크는 파일 데이터 자체를 참조하며, 원본 파일이 삭제되어도 데이터 손실이 발생하지 않습니다. 하지만 동일한 파일 시스템 및 파티션에서만 사용할 수 있다는 제약이 있습니다.
  • 소프트링크는 파일 이름을 참조하여 포인터처럼 동작하며, 원본 파일이 삭제되면 링크가 깨집니다. 그러나 다른 파일 시스템이나 파티션에서도 사용할 수 있습니다.
반응형