UNIX에서 디렉토리를 생성하면 2개의 하드 링크가 있습니다. .
하나 ..
는 자신에 대한 것이고 다른 하나는 상위 디렉토리에 대한 것입니다.
.
디렉토리의 증가 카운터를 읽으면 ..
상위 디렉토리의 하드 링크 카운터가 증가됩니다.
따라서 .
디렉토리에서만 계산됩니다. 하지만 이 작업을 수행하면 여전히 2개의 하드 링크가 있습니다 ls -l
. 두 번째는 무엇입니까? 누군가 디렉토리의 하드 링크가 어떻게 계산되는지 말해 줄 수 있습니까? 다음과 같은 계층 구조가 있다고 상상해 보세요.
parent - 4 hard links
.
. child_1 - 2 hard links
.
. child_2 - 2 hard links
답변1
child1
child1
상위 항목과 의 .
항목 으로 인해 두 개의 링크가 있습니다 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개의 하드 링크가 있습니다.