소프트 링크가 아닌 하드 링크를 언제 사용해야합니까?


10

나는 장난을 시작 mklink하려고하지만 여전히이 전체 "심볼 (symlink)"에 대한 실질적인 이해를 시도하고있다. 특히, "소프트 링크"와 "하드 링크"라는 두 가지 유형의 링크가 있음을 알았습니다. 그러나 두 가지의 차이점을 이해하는 데 어려움을 겪고 있습니다. 주어진 유스 케이스.

내가 지금까지 얻을 수 있었던 것은 다음과 같습니다.

  • 소프트 링크는 대상 파일 / 폴더에 대한 포인터 로 취급됩니다 .
  • 하드 링크는 실제로 대상 파일 / 폴더 인 것처럼 처리됩니다 .

OS와 응용 프로그램이 링크를 처리하는 방식에서 이것이 실제로 무엇을 의미합니까? 둘 중 어느 것을 사용할지 결정할 때 고려해야 할 요소는 무엇입니까?

현재 사용 사례는 SkyDrive가 실제 SkyDrive 디렉토리 외부에있는 파일 / 폴더를 동기화하도록하는 것입니다 . 그러나 답변에 향후 참조를위한 일반 지침이 포함될 수 있는지 선호합니다.

답변:


6

소프트 링크는 파일에 대한 포인터이기 때문에 매달려있는 소프트 링크를 가질 수 있습니다.

매달려있는 하드 링크를 가질 수 없습니다. 각 파일에는 적어도 하나의 하드 링크, 즉 파일 시스템의 디렉토리 항목이 있습니다. 따라서 파일을 만든 다음 파일에 대한 하드 링크를 만든 다음 원본 파일을 삭제하면 하드 링크에 영향을 미치지 않습니다.

이 때문에 하드 링크로 인해 실제로 사라진 파일을 삭제할 때 모든 하드 링크를 삭제하지 않으면 파일이 여전히 존재한다고 믿게 될 수 있습니다. 하드 링크의 특정 측면을 활용하지 않는 한 대부분의 경우 소프트 링크를 사용하려고합니다.


그렇다면 적절한 은유 적 해석은 소프트 링크는 파일 바로 가기이고 하드 링크는 파일의 동기화 된 사본입니까?
Iszi

글쎄 ... 하드 링크는 실제로 파일 데이터의 추가 사본을 만들지 않습니다. 또 다른 물리적 디렉토리 항목입니다. 따라서 파일에 대한 두 개의 하드 링크는 사용 된 디스크 공간을 크게 변경하지 않습니다.
LawrenceC

프로그래밍 개념에 정통한 경우 소프트 링크를 기존 포인터로, 하드 링크를 참조 횟수 (스마트) 포인터로 생각하십시오.
paddy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.