답변:
메일 전달의 비유를 사용하기 위해 심볼릭 링크는 전달 주소와 유사합니다. 심볼릭 링크를 열려고 할 때 저장된 "파일"(말 그대로 파일이 아님)을 열어서 확인합니다. 대신 다른 이름을 가진 파일을 찾아 다른 파일을 대신여십시오.
하드 링크는 같은 장소에 두 개의 주소를 갖는 것과 비슷합니다. (물론 이것은 실제 세계에서는 실제로 불가능합니다). 어떤 파일 이름 (주소)을 읽으려고하면 동일한 실제 파일 (위치)을 얻습니다.
따라서 파일은 한 번만 저장되지만 여러 이름으로 저장되므로 하드 링크는 복사본이 아닙니다. 그러나 두 파일 이름에서 동일한 정보에 액세스 할 수 있기 때문에 사본과 매우 유사하게 작동합니다.
/foo
및 /bar
변경 /foo
도 변경됩니다 /bar
만약 그들이있는 거 하드 링크 (같은 파일들이있는 거 두 개의 이름), 그러나 때문에하지가 있다면 사본 (두 개의 완전히 독립적 인 파일이기 때문에).
아니요. 파일에 대한 (두 번째 및 이후의) 모든 하드 링크는 디스크에서 동일한 inode에 대한 포인터입니다.
하드 링크를 만들면 동일한 파일이 서로 다른 두 곳에 나타납니다. 파일은 실제로 디스크의 데이터 블록 세트에 대한 참조 일 뿐이므로 하드 링크는 다른 참조를 추가합니다. 파일이 실제로 삭제되는 경우는 거의 없습니다. 참조는 방금 제거되었으므로 데이터에 액세스 할 수 없습니다. 그래서 하드 링크로 만든 파일을 삭제하면 다른 원본 파일은 그대로 유지되며 그 반대도 마찬가지입니다.
반면에 심볼릭 링크는 특정 이름을 가진 파일에 액세스하는 방향입니다. 모든 프로그램에 "이 파일을 사용하려면 끝났습니다"라고 알려줍니다. 따라서 심볼릭 링크의 대상을 삭제하면 심볼릭 링크가 끊어집니다. 링크를 삭제해도 대상은 영향을받지 않습니다.
* nix 시스템의 파일에는 두 부분이 있습니다. 하나는 데이터 부분이고 다른 하나는 inode입니다. inode는 메타 (HDD에 저장된 위치와 같은 데이터와 관련된 정보) 정보를 저장합니다. 하드 링크는이 inode의 정확한 사본을 만듭니다. sym 링크는 실제 inode의 inode를 가리키는 inode를 만듭니다. 따라서 하드 링크의 inode 데이터는 대상과 동일하지만 sym 링크의 데이터는 다릅니다. 간단히 말해서 sym 링크와 하드 링크는 파일 데이터가 아닌 inode 데이터의 내용에 따라 다릅니다. 이것은 sym link와 hard link의 차이점에 대한 나의 이해입니다. 나는 이것이 더 개발자 일이고 나는 개발자가 아니기 때문에 처음에 이것을 이해하는 데 어려움을 겪었습니다. 아는 사람, 내가 틀렸다면 정정하십시오.