it-swarm-ko.tech

소프트 (기호) 링크와 하드 링크의 차이점은 무엇입니까?

이제 Vista에서도 소프트 링크를 만들 수 있음 할 수 있다고 들었습니다. 그렇다면 유닉스/리눅스/비스타의 소프트 (심볼릭) 링크와 하드 링크의 차이점은 무엇입니까?

다른 것을 사용하는 것의 장점이 있습니까? 아니면 두 가지 다른 목적으로 만 사용됩니까?

59
Aaron K

하드 링크는 전통적으로 동일한 파일 시스템 구조 (Unixspeak의 아이 노드)를 공유하지만 소프트 링크는 경로 이름 리디렉션입니다.

  • 하드 링크는 동일한 파일 시스템에 있어야하며 소프트 링크는 파일 시스템을 교차 할 수 있습니다.
  • 하드 링크 된 파일 중 하나를 이동하더라도 복사 및 삭제 메커니즘을 트리거하는 다른 파일 시스템으로 이동하지 않는 한 하드 링크 된 파일은 연결 상태를 유지합니다. 대상 (원본)을 이동하면 링크가 이동 될 때 소프트 링크로 연결된 파일이 손상됩니다 (절대 또는 상대 경로를 사용 했습니까? 여전히 유효합니까?).
  • 하드 링크 된 파일은 동일하며 원본은 소프트 링크에서 특별하며 원본을 삭제하면 데이터가 삭제됩니다. all 하드 링크가 삭제 될 때까지 데이터가 사라지지 않습니다.
  • 소프트 링크는 any 대상을 가리킬 수 있지만 대부분의 OS/파일 시스템은 파일 시스템 그래프에서주기를 방지하기 위해 하드 링크 디렉토리를 허용하지 않습니다 (... 유닉스 디렉토리에있는 항목 (하드 링크).
  • 소프트 링크는 파일 시스템 보행 도구의 특별한 지원이 필요할 수 있습니다. readlink (2) 에서 읽습니다.

( mat1t . 감사합니다.)

요약하면 기호/짧은 링크는 첫 번째 파일 위치에 대한 바로 가기 역할을하는 반면 하드 링크는 디스크의 파일에 대한 바로 가기 기능입니다.

소프트 링크의 대상을 삭제하면 소프트 링크가 작동하지 않지만 하드 링크의 사본 하나를 삭제하면 파일은 하드 링크에 대한 모든 하드 링크가 제거 될 때까지 디스크에 남아 있습니다. 사실상 모든 파일 이름은 디스크의 파일에 대한 하드 링크입니다.

특정 제한 사항도 있습니다. 예를 들어 폴더의 하드 링크를 만들 수는 없지만 소프트 링크를 만들 수는 없습니다. 소프트 링크는 다른 드라이브 및 파티션의 파일/폴더를 가리킬 수 있지만 하드 링크는 할 수 없습니다.

10
Matthew Steeples