UNIX에서 하드 링크는 어떻게 계산됩니까? [복사]

UNIX에서 하드 링크는 어떻게 계산됩니까? [복사]

UNIX에서 디렉토리를 생성하면 2개의 하드 링크가 있습니다. .하나 ..는 자신에 대한 것이고 다른 하나는 상위 디렉토리에 대한 것입니다.

.디렉토리의 증가 카운터를 읽으면 ..상위 디렉토리의 하드 링크 카운터가 증가됩니다.

따라서 .디렉토리에서만 계산됩니다. 하지만 이 작업을 수행하면 여전히 2개의 하드 링크가 있습니다 ls -l. 두 번째는 무엇입니까? 누군가 디렉토리의 하드 링크가 어떻게 계산되는지 말해 줄 수 있습니까? 다음과 같은 계층 구조가 있다고 상상해 보세요.

parent    - 4 hard links
.
. child_1 - 2 hard links
.
. child_2 - 2 hard links

답변1

child1child1상위 항목과 의 .항목 으로 인해 두 개의 링크가 있습니다 child1.

설명된 조디악 표지판 중에는 일반적 으로 다음이 parent있습니다.4개링크(3이 아님). 다른 부모의 자식이므로(루트가 아닌 경우):

$ find parent | xargs stat -c "%h %n"  # %h=link count, %n=name
4 parent
2 parent/child2
2 parent/child1

답변2

좋아요 제가 강사님께 이렇게 물었습니다.

.디렉터리 자체의 수를 1씩 늘립니다. ..상위 디렉터리의 수를 1씩 늘립니다. 디렉토리 이름도 디렉토리에 대한 하드 링크이기 때문에 새 하위 디렉토리에는 2개의 하드 링크가 있습니다.

관련 정보