Linuxのフォルダーで許可されるフォルダーの最大数はいくつですか?


17

Redhatを使用して、それが違いを生む場合。

デフォルトの制限はありますか?変更できますか?そうでない場合、ディレクトリで許可されるフォルダの数を増やすための回避策はありますか?

回答:


22

ディストリビューションが使用するファイルシステムによって異なります。新しいデスクトップディストリビューション(つまり、Fedoraの最新バージョンであるUbuntu 9.10)を使用する場合、おそらくext4を使用します。古いものを使用する場合、おそらくext3です。


11

EXT2で、ウィキペディアによると32,768 - http://en.wikipedia.org/wiki/Ext2fs#File_system_limits。使用するファイルシステムによって異なります。


3
うん。フォルダカウントは、OSではなくファイルシステムに添付されます。
悪魔のような子犬2009年

ext4のように見えますが微調整を通じて、さらにそれよりもハード64Kが、支持体にその制限をバンプ
basszero

4

あなたがしようとしていることは何でも代替案を検討することができます。ファイルシステムの制限(ext2の場合は32kなど)を下回っても、1つのディレクトリに数万のファイルを保存するのは控えめに言っても面倒です。

可能性の1つは、データベースにより適したものにファイルシステムを使用しようとしていることです。PostgreSQL、MySQL、またはsqliteデータベースにデータを保存することを検討してください。膨大な数のファイルにうまく対応できるファイルシステムはあまりありません。データの移動やバックアップは遅くなります。

大量のファイルを保存する必要がある場合は、別のディレクトリ構造を検討してください。たとえば、次のようにファイルをアルファベット順に区切ることができます。

a/aaron.dat
a/alex.dat
a/alan.dat
b/bill.dat
b/brian.dat

このアプローチは、分離の深さを増やすことで拡張できます。例:

a/a/aaron.dat
a/l/alex.dat
a/l/alan.dat

または、毎日のログファイルを入力している場合、または毎日の配信を受信して​​いる場合は、日付ごとにファイルを分けることができます。例:

2009-10-04/logfile-01.txt
2009-10-05/logfile-01.txt
2009-10-05/logfile-02.txt

この特定のケースでは、ファイル数を減らすために、古いログを圧縮されたtarballにパッケージ化するジョブをcronすることもできます。


1

任意の数のファイルを処理する必要があるエンタープライズシステムが、ファイル名のハッシュに基づいて1つまたは2つのサブディレクトリに格納するのは、フォルダーの制限が原因です。たとえば、md5()ファイル名を使用し、最初の4バイトをファイルを保存するサブフォルダーとして使用します。レベルを追加するには、サブフォルダーを追加するために次の4を使用し、その後に次の4を使用します。ほとんどのシステムでは、2レベルを超えることはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.