inode 번호는 inode의 변경할 수 없는 ID입니까?

inode 번호는 inode의 변경할 수 없는 ID입니까?

inode의 inode 번호 개념을 이해하려고 합니다.

inode 번호가 inode의 ID입니까?

인덱스 노드에는 인덱스 노드 번호가 하나만 있습니까? 아니면 inode가 0개 이상의 inode 번호를 가질 수 있습니까?

inode 번호는 언제 inode에 할당됩니까?

inode의 inode 번호를 변경할 수 있나요? inode의 inode 번호를 변경하는 것이 합리적입니까?

구체적으로 설명해야 한다면 Linux 기본 파일 시스템을 언급하겠습니다.

답변1

inode 번호는 단순히 inode의 고유 식별자입니다. UID나 GID와 비슷합니다. 따라서 각 inode에는 하나의 식별자만 있습니다.

파일의 inode 번호를 찾으려면 ls -i또는 를 사용하십시오 stat.

유닉스의 모든 디렉토리는 단지 (filename, inode number)쌍의 목록일 뿐입니다. inode 번호는 inode 구조 자체에 대한 "포인터" 역할을 합니다. 그러면 인덱스 노드는 실제 파일 내용의 위치를 ​​기록합니다.

Inode 번호는 생성 시, 즉 새 파일이 생성될 때마다 inode에 할당됩니다.

다음 사항을 해결하기 위해 편집되었습니다.

  1. 이것은 실제로 어려운 질문입니다. 나는 대답이 '아니요'라고 강하게 의심했지만 100% 확신할 수는 없었기 때문에 몇 가지 간단한 조사를 해보았습니다. 파일을 이동하면 inode 번호가 실제로 변경된다는 일부 소스를 찾았지만 이 동작을 로컬에서 재현할 수는 없으므로 일부 외부 요인에 따라 달라지는 것 같습니다. 바라보다여기예를 들어. inode 번호에 주의를 기울이는 것이 확실히 가능합니다.아니요이동에 여러 개의 하드 링크가 있는 경우 이동에서 변경하십시오. 그렇지 않으면 하드 링크가 끊어집니다.

  2. 예. 그렇지 않으면 운영 체제에 inode 번호가 부족해질 수 있습니다.아주 나쁜. 이는 프로세스 ID가 결국 운영 체제에서 재사용될 수 있는 것과 똑같은 이유입니다.

  3. 위에서 이것에 대해 다루었습니다. 각 i-노드에는 하나의 i-노드 번호만 있습니다.

관련 정보