하드 링크 삭제가 inode 테이블의 값 해제와 어떤 관련이 있는지 이해하려고 하시나요?

하드 링크 삭제가 inode 테이블의 값 해제와 어떤 관련이 있는지 이해하려고 하시나요?

하드 링크가 삭제되면 링크는 제거되지만 파일에 대한 모든 링크가 삭제될 때까지 파일 자체의 내용은 계속 존재합니다(즉, 해당 공간의 할당이 취소되지 않습니다).

내 이해는오직파일 자체가 삭제되면 이 특정 파일에 대한 Inode 테이블이 재설정됩니까? 원본 파일도 로 표현되는 링크이기 때문에1ls 명령의 메타데이터에 있습니다.

예를 들어, 파일에 대한 2개의 하드 링크가 있고 두 하드 링크를 모두 삭제한다고 가정해 보겠습니다. Inode 데이터는 마지막 링크가 삭제될 때까지 테이블에 계속 인덱싱됩니다. 이 올바른지?

명령을 사용할 때 df -hi공간이 지워졌는지 여부는 많은 정보와 관련이 없습니다. 그래서 두 번째 질문은 Inode 데이터가 명확하고 공간을 차지하지 않는지 어떻게 확실히 알 수 있는가 하는 것입니다.

답변1

다음과 같은 경우 inode의 공간과 inode 테이블의 블록 및 공간이 해제됩니다.

  • inode를 가리키는 마지막 디렉토리 항목이 삭제됩니다. 즉, inode에 대한 하드 링크가 더 이상 없으며,
  • inode를 참조하는 마지막 파일 설명자가 닫힙니다. 즉, inode는 더 이상 사용되지 않으며 inode에는 이를 참조하는 열린 파일 설명자가 없습니다.

예를 들어, 프로세스는 파일을 생성하고, 파일을 연 다음, 해당 파일을 임시 저장소로 사용하기 위해 즉시 링크를 해제할 수 있습니다. 프로세스가 종료되거나 종료되면 해당 파일 설명자가 자동으로 닫히고 임시 파일이 자동으로 해제됩니다.

inode가 실제로 해제될 때까지 inode와 해당 블록이 사용되며 사용된 공간은 df에 표시된 대로 사용된 블록 및 inode로 표시됩니다. 마지막 파일 설명자와 하드 링크가 사라지면 공간이 해제되고 df의 보고가 업데이트됩니다.

관련 정보