Was ist die maximale Anzahl von Ordnern, die in einem Ordner unter Linux zulässig sind?

17

Mit Redhat, wenn das einen Unterschied macht.

Gibt es ein Standardlimit? Kann es geändert werden? Wenn nicht, gibt es Problemumgehungen, um die Anzahl der in einem Verzeichnis zulässigen Ordner zu erhöhen?

chris
quelle

Antworten:

22

Es hängt davon ab, welches Dateisystem Ihre Distribution verwendet. Wenn Sie eine neuere Desktop-Distribution verwenden (z. B. Ubuntu 9.10, eine neuere Version von Fedora), verwenden Sie wahrscheinlich ext4. Wenn Sie etwas älteres verwenden, ist es höchstwahrscheinlich ext3.

Matthew
quelle
11

In ext2 32.768 laut Wikipedia - http://en.wikipedia.org/wiki/Ext2fs#File_system_limits . Hängt davon ab, welches Dateisystem Sie verwenden.

Pekka unterstützt GoFundMonica
quelle
3
Ja. Die Ordneranzahl wird an das Dateisystem und nicht an das Betriebssystem angehängt.
Satanicpuppy
Sieht aus wie ext4-Bumps, die auf harte 64k begrenzt sind, aber noch mehr durch Tweaking unterstützen
Basszero
4

Möglicherweise möchten Sie Alternativen zu dem in Betracht ziehen, was Sie tun möchten. Selbst wenn Sie unter dem Dateisystemlimit bleiben (z. B. 32 KB für ext2), kann das Speichern von Zehntausenden von Dateien in einem einzigen Verzeichnis, gelinde gesagt, umständlich sein.

Eine Möglichkeit besteht darin, dass Sie versuchen, das Dateisystem für etwas zu verwenden, das besser für eine Datenbank geeignet ist. Ziehen Sie in Betracht, Ihre Daten in einer PostgreSQL-, MySQL- oder sogar einer SQLite-Datenbank zu speichern. Es gibt nicht viele Dateisysteme, die mit einer großen Anzahl von Dateien gut zurechtkommen - das Verschieben oder Sichern Ihrer Daten ist langsam.

Wenn Sie wirklich viele Dateien speichern müssen, ziehen Sie alternative Verzeichnisstrukturen in Betracht. Beispielsweise können Sie Ihre Dateien möglicherweise alphabetisch trennen, z.

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

Dieser Ansatz kann skaliert werden, indem die Tiefe Ihrer Trennung erhöht wird, z. B .:

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

Wenn Sie tägliche Protokolldateien eingeben oder tägliche Lieferungen erhalten, können Sie diese nach Datum sortieren, z.

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

In diesem speziellen Fall möchten Sie wahrscheinlich auch einen Job zum Packen alter Protokolle in komprimierte Tarballs erstellen, um die Anzahl der Dateien zu verringern.

Ryan Bright
quelle
1

Ordnergrenzen sind, warum Unternehmenssysteme, die mit einer beliebigen Anzahl von Dateien umgehen müssen, in einem oder zwei Unterverzeichnissen basierend auf einem Hash des Dateinamens speichern. Beispiel: Geben Sie md5 () den Dateinamen ein und verwenden Sie die ersten vier Bytes als Unterordner, in dem die Datei gespeichert wird. Verwenden Sie für zusätzliche Ebenen die nächsten 4 für einen zusätzlichen Unterordner oder die nächsten 4 danach usw. Die meisten Systeme würden niemals mehr als 2 Ebenen tief sein.

Mächtig
quelle