制限は、ネストされたサブディレクトリの深さ (数十、またはそれ以上) ではなく、ファイル システムとそのクォータです。
また、非常に長いファイル パスを持つことは不便です (そして、少し非効率になる可能性があります)。プログラムでは、数百または数千文字のファイル パスが可能です。しかし、人間の脳は、そのような長いファイル パスを覚えることができません。
ほとんどのファイル システム (Linux 上) には、inodeの数に固定の制限があります。
一部のファイル システムは、1 万のエントリを含むディレクトリで適切に動作しません (たとえば、検索が二分法ではなく線形であるため)。そして、それらに対処するのに苦労します (たとえば、ls *
出力が長すぎます)。したがって、... の代わりに ... を使用することをお勧め/somepath/a/0001
し/somepath/z/9999
ます/somepath/a0001
。/somepath/z9999
/some/path/A/userAaron/images/foobar
何千人ものユーザーがそれぞれ自分のディレクトリを持っている場合、たとえば、ユーザーをイニシャルでグループ化することをお勧めします/some/path/B/userBasile/images/barfoo
。/some/path/A/
便利な経験則として、各ディレクトリに数百を超えるエントリ(サブディレクトリまたはファイルのいずれか) を持たないようにします。
一部の Web アプリケーションは、小さなデータ チャンクを SQL データベースの個々の行に保存し、大きなデータ チャンクにはファイル (名前が生成される場合があります) を使用して、ファイルパスをデータベースに保存します。ほとんどが数十バイトしかない何百万ものファイルを持つことは、おそらく効率的ではありません。
一部のシステム管理者は、ファイルシステムでクォータも使用しています。