먼저 단일 파일(A.DAT)에 대한 하드 링크(HLINK)와 소프트 링크(SLINK)를 생성했습니다. 내가 아는 한, SLINK에는 자체 inode가 있으며 이 inode는 A.DAT의 inode를 가리킵니다. 그러나 HLINK에는 자체 inode가 없습니다. 하드 링크를 생성하면 A.DAT의 inode를 직접 가리킵니다.
따라서 내 QS는 원본 파일(A.DAT)을 삭제할 때 하드 링크(HLINK)의 존재로 인해 A.DAT의 inode가 메모리에 여전히 존재한다는 것입니다. 그런데 왜 SLINK를 전달할 수 없는 걸까요? SLINK의 inode는 메모리에 여전히 존재하는 inode를 가리키고, HLINK는 동일한 inode를 가리키지만 접근이 가능합니다.
이 점을 이해하도록 도와주시고 제가 틀렸다면 정정해 주시기 바랍니다.
감사해요! !
답변1
SLINK에는 A.DAT의 inode를 가리키는 자체 inode가 있습니다.
아니요, 인덱스 노드를 전혀 참조하지 않습니다. A.DAT의 이름을 가리킵니다. 이름이 변경되면 참조가 끊어집니다.
이것이 바로 심볼릭 링크가 파일 시스템 전반에서 작동하는 이유입니다. 인덱스 노드(또는 사용되는 모든 데이터 구조)는 표시되지 않을 수 있지만 이름은 표시됩니다.