ファイル数の限界がどれぐらいかざっくり調査。

FAT32ではMS-DOSの8.3形式に準拠するファイル名をつけた場合65534個が上限。

FAT16、および FAT32 ファイル システムにおいて、ルート ディレクトリ、サブディレクトリに作成できる最大ファイル数は以下のとおりです。なお、以下は MS-DOS の 8.3 形式に準拠するファイル名をつけた場合に、ディレクトリ内に保存できるファイル数です。

FAT16 ルート ディレクトリ 512 個
サブディレクトリ 65534 個

FAT32 ルート ディレクトリ 65535 個
サブディレクトリ 65534 個

MS-DOS では、ファイルやサブディレクトリ 1 つに対し、1 つのディレクトリ エントリを使用します。しかし、Windows では、長いファイル名、サブディレクトリ名、8.3 に短縮されたエイリアス毎に、それぞれディレクトリ エントリを使用します。そのため、Windows では、ファイル数が上記の個数以下でもファイルが作成できない場合があります。

W98:FAT16、FAT32 でディレクトリ内に作成できる最大ファイル数

Linux の ext2 では現実的には 10000~15000 個がファイルの上限らしい。
だいぶ古いから実装が変わっている可能性も? そんなわけないか。

一つのディレクトリに 32768 のサブディレクトリの上限があります。

現行の単方向リンクのリストによるディレクトリの実装で、一つのディレクト
リ内のファイル数は、実運用上約 10-15k 個が上限になります。この制限はこ
のような大きなディレクトリ内のファイルを作成および削除 (さらに検索) す
る時のパフォーマンスの問題のためです。ディレクトリインデックスのハッシ
ング (開発中) を使用すれば、パフォーマンスの問題なしに一つのディレクト
リに 100k-1M+ 個のファイルが置けます (この時には RAM サイズが問題にな
ります)。

一つのディレクトリ内のファイルの (無意味な) 絶対的な上限 (ファイルサイ
ズによって課されるもので、現実的な制限は明白にはるかに少ない) は 130
兆ファイル以上です。ユニークなディレクトリエントリを構築するための名前
は 4 文字では足りないので、8 文字のファイル名にしなければならないとい
うことを考慮しなければもっと多くできますが、考慮してすらユニークなファ
イル名を使い果たしてしまいそうです。

JF: Linux Kernel 2.4 Documentation: ext2.txt

/usr/include/linux/ext3_fs.h に #define EXT3_LINK_MAX 32000 という定義があるとのこと。つまり ext3 ではファイル数の上限が32000個らしい。
CentOS: 1つのディレクトリ内に作れるファイル数の上限値: Akito's IT技術 メモ

tags: Windows Linux FileSystem zurazure

Posted by NI-Lab. (@nilab)