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


10

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

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

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

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

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

답변:


6

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

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

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


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

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

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