하드 링크가 파일 시스템 구조를 손상시키나요?

하드 링크가 파일 시스템 구조를 손상시키나요?

하드 링크가 파일 시스템 구조를 손상시킬 수 있는 방법에 대한 아주 간단한 예를 원합니다.

사람들이 루프 때문이라고 말하는 것을 봤습니다. 그러나 소프트 링크를 사용하여 루프를 만들 수 있는데 하드 링크가 파일 시스템을 손상시키는 원인이 무엇인지 여전히 궁금합니다.

답변1

파일 시스템 구조를 손상시킬 수 있는 디렉터리에 대한 하드 링크입니다. 다른 유형의 파일에 대한 하드 링크는 문제가 되지 않습니다. 예를 들어:

mkdir foo
ln foo foo/self
rmdir foo

rmdir fooself디렉토리에 남아 있는 링크(그 안에 항목) 가 있으므로 디렉토리는 실제로 삭제되지 않습니다 foo. foo파일 시스템에서 분리되어 더 이상 접근할 수 없지만 여전히 존재합니다. 디렉토리에 대한 하드 링크를 비활성화하면 이 문제가 방지됩니다. 일부 가비지 수집 파일 시스템은 분리된 디렉터리 트리를 자동으로 회수하지만 실제로는 회수되지 않습니다(이는 거의 이익이 없는 상당한 양의 작업입니다).

또 다른 문제는 디렉토리 트리를 탐색하는 도구입니다. 디렉토리에 대한 하드 링크가 허용되면 이러한 도구는 이전에 본 모든 디렉토리를 기억하고 건너뛰어야 합니다. 그렇지 않으면 자체 하위 디렉토리(또는 그 하위 디렉토리 등)인 디렉토리를 만날 때 영원히 반복됩니다. ).

심볼릭 링크가 있는 루프는 문제가 되지 않습니다. 심볼릭 링크의 대상이 삭제되면 심볼릭 링크의 존재는 중요하지 않습니다. 재귀 순회에서는 명시적으로 요청하지 않는 한 기호 링크를 따르지 않습니다.

관련 정보