>  기사  >  운영 및 유지보수  >  Linux i-node 번호는 무엇을 의미합니까?

Linux i-node 번호는 무엇을 의미합니까?

WBOY
WBOY앞으로
2023-05-29 17:19:411977검색

inode 번호는 Linux 시스템에서 서로 다른 파일을 구별하는 데 사용되는 번호 식별자입니다. Linux는 내부적으로 파일 이름이 아닌 inode 번호를 사용하여 파일을 식별합니다. 시스템의 경우 파일 이름은 사용자가 파일을 식별하는 데 편리한 inode 번호의 또 다른 이름입니다. , 각 inode 번호는 A 파일 이름에 해당합니다.

1. 리눅스의 i node

리눅스에서 i node는 inode 노드를 가리킨다.

Linux에서는 파일 이름으로 파일 검색이 이루어지지 않습니다. 실제로 파일 검색 및 위치 지정은 i 노드를 통해 이루어집니다. i 노드를 포인터 fip로 시각화할 수 있습니다. 파일이 디스크에 저장되면 파일은 반드시 디스크 위치에 저장됩니다. 파일 데이터가 디스크에 저장되므로 파일 데이터의 주소를 알면 읽고 싶을 때 상상할 수 있습니다. 파일 쓰기 이때 이 주소만 사용하여 파일을 찾을 수 있나요?

그렇습니다. Linux에서는 실제로 i-node는 디스크의 파일 저장 영역을 가리키는 주소로 간주됩니다. 일반적으로 이 주소를 직접 사용할 수는 없지만 파일 이름을 통해 간접적으로 사용해야 합니다. 실제로 i 노드에는 파일 데이터 저장 영역의 주소 외에도 파일 크기, 파일 정보 등과 같은 많은 양의 정보가 포함되어 있습니다. 하지만 i 노드는 파일 이름을 저장하지 않습니다. 파일 이름은 디렉토리 항목에 저장됩니다. 각 디렉토리 항목에는 파일 이름과 i-노드가 포함되어 있습니다.

다이어그램을 사용하여 디렉터리 항목, i 노드 및 파일 데이터 간의 관계를 확인할 수 있습니다.

Linux i-node 번호는 무엇을 의미합니까?

위 그림에서 볼 수 있듯이 디렉터리 항목에는 파일 이름과 i 노드가 포함되어 있습니다.

동시에 위 그림에서 디렉터리 항목 A와 디렉터리 항목 B의 i 노드는 동일한 저장 영역을 가리키고 이 저장 영역에는 printf("ha")의 데이터가 저장되어 있음을 알 수 있습니다.

helloA.c와 helloB.c의 내용이 동일하다는 의미입니다.

i 노드 번호

각 inode에는 번호(예: inode 번호)가 있으며 운영 체제는 inode 번호를 사용하여 다른 파일을 식별합니다.

————Linux는 파일 이름이 아닌 inode 번호를 내부적으로 사용합니다. 시스템에서 파일 이름은 inode 번호의 또 다른 이름이므로 사용자가 파일을 식별하는 데 편리합니다. 파일 이름과 inode 번호 사이에서 각 inode 번호는 파일 이름에 해당합니다.

아이노드 번호는 시스템이 인식하는 유일한 코드이고 파일 이름은 사용자 식별만을 위한 것입니다. 아이노드(인덱스 노드) 테이블에는 파일 시스템의 모든 파일 목록이 포함되어 있습니다. 관련 파일 정보(메타데이터)가 포함된 테이블 항목입니다.

파티션 후 하드 디스크의 구조:

Linux i-node 번호는 무엇을 의미합니까?

  • 사용자가 Linux 시스템의 파일에 액세스하려고 하면 시스템은 먼저 파일 이름을 기반으로 해당 inode 번호를 검색합니다. inode 정보를 기반으로 사용자가 이 파일에 액세스할 수 있는 권한이 있는지 확인하고, 그렇지 않은 경우 해당 데이터 블록을 가리키고 데이터를 읽습니다.

파일 액세스를 위한 간단한 프로세스:

Linux i-node 번호는 무엇을 의미합니까?

2. Linux 파일 저장

2.1 inode 수 제한

  • Inode도 하드 디스크 공간을 소비하므로 포맷할 때 운영 체제 하드 디스크는 자동으로 두 영역으로 나뉩니다. 하나는 파일 데이터를 저장하는 데이터 영역이고 다른 하나는 inode에 포함된 정보를 저장하는 inode 영역입니다. 각 inode의 크기는 일반적으로 128바이트 또는 256바이트입니다.

  • 일반적으로 단일 inode의 크기에 신경 쓸 필요는 없지만 총 inode 수는 포맷 중에 이미 결정되어 있습니다.
    ——왜 해야 할까요? 총 아이노드 개수에 집중해야겠죠? 왜냐하면아이노드가 다 소모되면 디스크에 아직 공간이 남아있어도 새 파일을 생성할 수 없기 때문입니다. 왜냐하면 파일 생성 시 아이노드 번호가 1이기 때문입니다. 이에 대응해야 하며, inode가 없으면 새 파일을 생성할 수 없습니다.
    "df-i" 명령을 실행하면 각 하드 디스크 파티션에 해당하는 총 inode 수와 사용된 inode 수를 확인할 수 있습니다.

Linux i-node 번호는 무엇을 의미합니까?

2.2 inode의 내용

inode에는 파일의 메타 정보, 특히 다음 내용이 포함됩니다.

  • 파일의 바이트 수

  • 소유자 파일 사용자 ID

  • 파일의 그룹 ID

  • 파일의 읽기, 쓰기 및 실행 권한

  • 링크 수, 즉 이 inode를 가리키는 파일 수

  • 파일의 타임스탬프

  • 파일 inode 정보를 보는 두 가지 방법

방법 1: stat [파일 이름]

예: stat aa.txt

Advantages : 파일 Inode

Linux i-node 번호는 무엇을 의미합니까?

Method 2 : LS -I [파일 이름]의 자세한 정보를 볼 수 있습니다. 세 개의 Linux 시스템 파일 주요 시간 속성

Linux 시스템 파일의 세 가지 주요 시간 속성(예: inode의 타임스탬프)

ctime(변경 시간)

은 마지막 Linux i-node 번호는 무엇을 의미합니까?change

파일 또는 디렉터리(

attribute) 시간

atime(액세스 시간)은 마지막으로

액세스된 시간

파일 또는 디렉터리

  • mtime(수정 시간)
    은 마지막 modification 파일 또는 디렉터리(content)를 나타냅니다. ) time


  • 3. inode의 특별한 역할

  • inode 번호와 파일 이름이 분리되어 있기 때문에 일부 Unix/Linux 시스템에서는 다음과 같은 현상이 발생합니다.

  • 파일 이름에 특수 문자로 인해 파일이 정상적으로 삭제되지 않거나, inode를 직접 삭제하거나, 파일을 삭제하는 것이 불가능할 수 있습니다

  • 파일을 이동하거나 이름을 바꿀 때 파일 이름만 변경되고 inode 번호는 영향을 받지 않습니다

이후 파일을 열면 시스템은 inode 번호로 파일을 식별하므로 더 이상 파일 이름을 고려하지 않습니다

파일 데이터가 수정되고 저장되면 새 inode 번호가 생성됩니다(원래 inode 번호가 해제됩니다)

  • 아이노드 번호를 삭제하여 파일을 삭제하는 방법:
  • 방법 1(삭제 전 정보 확인 필요): find ./ -inum [아이노드 번호] -exec rm -i {} ;

  • 방법 2(직접 삭제): find ./ -inum [inode 번호] -delete

위 내용은 Linux i-node 번호는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제