Linuxでゼロバイトファイルを生成するという概念は何ですか?

Linuxでゼロバイトファイルを生成するという概念は何ですか?

次のようにすると:

touch /tmp/test

その後実行

ls -la /tmp/

testファイルを見ることができます。0バイトディレクトリに。

しかし、オペレーティングシステムはこの概念をどのように扱いますか?0バイト。平信度の用語で表現すると、次のようになります。

0バイトはメモリがまったくないことを意味するので、何も生成されません。

ファイルを作成し、〜しなければならないまたはしなければならない少なくとも一定量のメモリが必要です。そうですか?

ベストアンサー1

ファイルは(およそ)3つに分けられます。

  • 「inode」は、ファイルの所有者、権限、実際にデータを含むディスクのブロックのリストを追跡するために使用されるメタデータ構造です。
  • このinodeを指す1つ以上のディレクトリエントリ(ファイル名)
  • 実際のデータブロック自体

空のファイルが作成されると、inodeとそのinodeを指すディレクトリエントリのみが生成されます。希少ファイル()の場合も同様ですdd if=/dev/null of=sparse_file bs=10M seek=1

既存のファイルへのハードリンクを作成するときは、同じinodeを指す追加のディレクトリエントリを作成するだけです。

私はここで仕事を簡素化していますが、あなたはアイデアを得ます。

おすすめ記事