ファイルシステムの制限について

●ファイル・ディレクトリ数の上限
ひとつのディレクトリ直下に格納できる、ファイル・ディレクトリ数については、おそらく上限はない。おそらく、数万・数十万のファイルを同一ディレクトリ内に作成することは可能であろう。ただし、少なくとも UFS (FFS/FFFS)・ext2ext3 においてはファイル名の探索は線形探索であり、非常に遅い。具体的には、特定のファイルをオープンしたり、タイムスタンプやパーミッションなどの情報を得る (stat(2)) 場合などは、そのディレクトリ内のエントリを 1つずつ順に調べ、一致するファイル名を探し出す必要がある。


現実的には、ひとつのディレクトリに数万〜数十万のファイルを置くと、ls -l の結果を見るだけでそれなりに時間がかかるようになる。ひとつのディレクトリに置くファイルは、多くても 1000個程度にとどめておくことをお勧めする (ちなみに RaiserFS・xfs・jfs などのイマドキなファイルシステムでは、B+-Tree や B*-Tree などの二分木を発展させた管理方法を採用しており、ファイル数の増加はそれほど問題にはならない)。


なお、ファイルシステム全体としては i-node (inode) の数がファイル・ディレクトリ数の上限である。i-node の使用数・未使用数は df コマンドに -i オプションを渡すことで確認できる。

% df -i
Filesystem  1K-blocks     Used     Avail Capacity iused    ifree %iused  Mounted on
/dev/ad0s1a    253678    39866    193518    17%    1040    31982    3%   /
/dev/ad0s1e    253678     2152    231232     1%     254    32768    1%   /tmp
/dev/ad0s1f 186444376 39519590 132009236    23% 5528815 18564879   23%   /usr

詳細は df コマンドを参照。
> コマンド df *

i-node 数の上限は UFS (FFS/FFFS)・ext2ext3 などの古めのファイルシステムであっても 2^32 個 (42億) であるため、現実的には問題になることは少ないだろう。

http://x68000.q-e-d.net/~68user/unix/pickup?%A5%D5%A5%A1%A5%A4%A5%EB%C0%A9%B8%C2%A4%DE%A4%C8%A4%E1

ext3は、third extended file systemの略で、GNU/Linuxで主流のファイルシステムである。ジャーナリングファイルシステムの一つ。 Linuxカーネル 2.4.16より利用が可能になった。

ext3 - Wikipedia

http://japan.cnet.com/blog/neta/2006/08/20/linux1153000_b892/