ホームページ  >  記事  >  運用・保守  >  Linux i-node 番号は何を意味しますか?

Linux i-node 番号は何を意味しますか?

青灯夜游
青灯夜游オリジナル
2023-03-30 11:49:202436ブラウズ

Linux では、i ノード番号は inode 番号を指し、さまざまなファイルを識別するために使用されます。 Linux は内部的に、ファイル名ではなく i ノード番号を使用してファイルを識別します。システムにとって、ファイル名は i ノード番号の別名であり、ユーザーがファイルを識別するのに便利です。ファイル名と i ノードの間には 1 対 1 の対応関係があります。番号があり、各 i ノード番号はファイル名に対応します。

Linux i-node 番号は何を意味しますか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

1. Linux の i ノード

Linux では、i ノードは i ノードを指します。

Linux では、ファイル検索はファイル名では行われません。実際、ファイルの検索と配置は i ノードを通じて行われます。 i ノードをポインター fip として視覚化できます。ファイルがディスクに保存されるとき、そのファイルは必ずディスクの場所に保存されます。ファイル データはディスクに保存されるため、ファイル データのアドレスがわかっていれば、いつ読み取ってデータを読み込むことができるかが想像できます。ファイルを書き込みます 現時点では、このアドレスを使用してファイルを見つけることができますか?

はい、Linux では、i ノードは実際には次のように考えることができ、i ノードはディスク上のファイル記憶領域を指すアドレスとみなされます。通常、このアドレスを直接使用することはできず、ファイル名を通じて間接的に使用します。実は、i ノードにはファイルのデータ格納領域のアドレスだけでなく、データサイズやその他のファイル情報など多くの情報が含まれています。ただし、i ノードはファイル名を保存しません。ファイル名はディレクトリエントリに保存されます。各ディレクトリ エントリには、ファイル名と i ノードが含まれます。

図を使用して、ディレクトリ エントリ、i ノード、およびファイル データの間の関係を確認できます。

上の図からわかるように、ディレクトリ エントリにはファイル名と i ノードが含まれています。

同時に、上図では、ディレクトリ項目 A とディレクトリ項目 B の i ノードが同じ記憶領域を指しており、この記憶領域には printf ("ha ")。

つまり、helloA.c と helloB.c の内容は同じです。

iNode 番号

各 i ノードには番号 (つまり i ノード番号) があり、オペレーティング システムはその i ノード番号を使用してさまざまなファイルを識別します。

————Linux は内部的に、ファイル名ではなく i ノード番号を使用してファイルを識別します。システムにとって、ファイル名は i ノード番号の別名であり、ユーザーがファイルを識別するのに便利です。ファイル名と i ノード番号対応関係としては、各inode番号とファイル名が対応している。

inode 番号はシステムによって認識される唯一のコードであり、ファイル名はユーザーの識別のみに使用されます。inode (インデックス ノード) テーブルには、ファイル システム内のすべてのファイルのリストが含まれます。1 つのノード (インデックス)ノード) はテーブル エントリ内にあり、ファイルに関する情報 (メタデータ) が含まれています。

ハードディスク パーティション後の構造:

Linux i-node 番号は何を意味しますか?

  • ユーザーが Linux システム内のファイルにアクセスしようとすると、システムは最初に名前を使用して対応する i ノード番号を検索する; i ノード番号を通じて i ノード情報を取得する; ユーザーが i ノード情報に従ってファイルにアクセスする権限を持っているかどうかを確認する; 持っている場合は、対応するデータ ブロックをポイントしてデータを読み取る; 持っていない場合は、対応するデータ ブロックをポイントしてデータを読み取る戻ります。

ファイルにアクセスするための簡単なプロセス:

Linux i-node 番号は何を意味しますか?

#2. Linux ファイル ストレージ

2.1 inode 数の制限

    inode もハードディスク容量を消費するため、フォーマットするときは、オペレーティング システムは、ハードディスクを 2 つの領域に自動的に分割します: 1 つはファイル データを保存するデータ領域で、もう 1 つは i ノードに含まれる情報を保存する i ノード領域です。各 i ノードのサイズは通常 128 バイトまたは 256 バイトです。
  • 通常、単一の i ノードのサイズに注意を払う必要はありませんが、i ノードの合計数に注目する必要があります。inode の合計数はフォーマット中に決定されます

    - i ノードの総数に注目する必要があるのはなぜですか?
    i ノードが使い果たされると、たとえディスクに空き領域があったとしても、新しいファイルを作成できなくなるためです。ファイルを作成するには、それに対応する i ノード番号が必要であり、新しいファイルは i ノードなしでは作成できません。 df-i
    」コマンドを実行すると、各ハードディスク パーティションに対応する i ノードの総数と使用されている i ノードの数が表示されます。

2.2 inode の内容

inode にはファイルのメタ情報、具体的には次の内容が含まれます。

    ファイルのバイト数
  • ファイルの所有者のユーザーID
  • ファイルのグループID
  • 読み取り、書き込み、および実行ファイルのアクセス許可
  • リンクの数、つまり、この inode を指すファイルの数
  • ファイルのタイムスタンプ
  • inode を表示する 2 つの方法あるファイルの情報


方法 1: stat [ファイル名]

例: stat aa .txt


Linux i-node 番号は何を意味しますか?

利点: ファイル i ノードの詳細情報を表示できます

#方法 2: ls -i [ファイル名]

Linux i-node 番号は何を意味しますか?

inode番号のみ表示可能

2.3 Linux システム ファイルの 3 つの主な時間属性

Linux システム ファイルの 3 つの主な時間属性 (つまり、 inode)

    ctime (変更時刻)
  • は、
    ファイルまたはディレクトリ ( 属性 ) に対する最後の 変更時刻を指します。
  • atime (アクセス時刻)
  • は、
    ファイルへの最後の アクセス、またはディレクトリの時刻を指します
  • mtime (変更時刻)
  • は、最後の時刻を指します
    ファイルまたはディレクトリを変更しました (content)

3. inode の特別な役割

##inode 番号がファイル名から分離されているため、一部の Unix/Linux システムでは次のような現象が発生します。

#ファイル名に特殊文字が含まれている場合、ファイルは正常に削除できない場合があります。inode を直接削除するか、ファイルを削除してください。

    ファイルを移動または名前変更する場合は、ファイル名のみを変更してください。inode 番号には影響しません。
  • ファイルを開いた後、ファイルの場合、システムは inode 番号でファイルを識別し、ファイル名は考慮しません
  • ファイル データが変更され保存されると、新しい i ノード番号が生成されます (元の i ノード番号は解放されます)
  • inode 番号を削除してファイルを削除する方法:

#方法 1 (削除前に確認情報が必要): find ./ -inum [inode 番号] -exec rm -i {} \ ;

方法 2 (直接削除): find ./ -inum [inode 番号] -deleteLinux i-node 番号は何を意味しますか?

関連する推奨事項: 「Linux i-node 番号は何を意味しますか?Linux ビデオ チュートリアル

以上がLinux i-node 番号は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。