私のフォローアップとして関連質問、メタデータなしでファイルを生成できますか?または削除できます。すべてのメタデータ与えられたファイル?
これは完全に「哲学的な質問」です。これが可能であれば、以前の質問を考慮すると、限られたスペースのディスクに「無制限の」数のファイルを作成することが可能になります。これは確かに試してみる価値のある実験だ。
たとえば、3年後のシステムに100個の空のファイルを作成します。
lucho@lucho-HP:~test/$ time seq -f "%04.0f" 100 | xargs -I "{}" touch test"{}".txt
real 0m0.231s
user 0m0.000s
sys 0m0.032s
これにより、1秒間に約400個のファイルを生成できます。これにより、8時間以内に(たとえば、眠っている間)1,100万個のファイルを作成できます。あまりありませんが、ポイントがわかります。
答え1
これ情報理論の答え前の質問も次の質問に答えます。ファイルを作成する場合は、最小の表現に縮小して検索できるようにしたいです。何これに対して、作成は一部のディスク容量を消費するため、最終的には不足します(ただし割り当ては機能します)。したがって、限られたディスク領域内でファイルを無制限に作成することはできません。
あなたが要求した質問に答えるためにファイルシステムがファイルメタデータを削除することを許可していないことを知っていますが、目的のメタデータを無視するために独自のファイルシステムを作成するのを防ぐ方法はありません。少なくともファイル名といくつかの名前が必要だと思います。ディスク上のファイルの内容を追跡する方法(ファイルシステムが空のファイルのみを保存できる場合は後者ではない可能性があります)
答え2
1つの文書〜しなければならない使用するディスクの最初のブロックの場所が1つ以上あります。接続されているファイルシステムによっては、占有しているディスク容量に関係なく、作成できるファイルの数が制限されます。ほとんどのファイルシステムには、含めることができるファイル数に制限があります(つまり、「ディレクトリ」のエントリ数は制限されています)。
POSIX仕様では、ファイルシステム内の各ファイルを記述するためにファイルシステムにinodeが必要です。〜しなければならない持っている:
- ファイルサイズ
- ファイルを含むデバイスの識別子
- ファイル所有者のUID
- ファイルのGID
- ファイル権限セット
- 追加のシステムおよびユーザーフラグ(ACLなど)
- タイムスタンプ(例:ctime、mtime、atime)
- inodeへのハードリンク数
- ファイル内容が格納されるディスクブロックへのポインタ
このデータはスペースを消費するため、実際のファイルがどれだけ小さくても保存できるファイルの数が制限されます。