Wie viele Dateien kann ich in einem einzigen Verzeichnis haben?

21

Diese Frage hängt mit dieser zusammen .

Ich arbeite mit Animation, die eine Menge Dateien (+/- 1.000.000) erzeugt, die normalerweise in einem einzigen Verzeichnis gespeichert sind. Unter Mac Os X gab es einige Fehler mit mehr als +/- 30.000 Dateien. Deshalb habe ich die Animation in verschiedene Verzeichnisse aufgeteilt.

Gibt es unter Ubuntu eine Beschränkung für die Anzahl der Dateien, die ein einzelnes Verzeichnis enthalten kann?

H_7
quelle

Antworten:

32

Ubuntu begrenzt die Größe eines Verzeichnisses nicht, sondern wird vom Dateisystem vorgegeben. Jede Datei und jedes Verzeichnis ist eine sogenannte Inode. Mit können df -iSie die Anzahl der verwendeten und für alle gemounteten Dateisysteme verfügbaren Inodes überprüfen.

Ich habe gerade 1 Million und eine Datei ohne Probleme erstellt, weil mein Inode-Limit für meine ext4-Home-Partition von 50 GB (46 GiB) groß genug ist.

Ich habe die Shell-Erweiterung zum Erstellen der Dateien verwendet, kombiniert mit dem touchDienstprogramm:

mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}

Dadurch werden 1000001 Dateien erstellt, mit denen überprüft werden kann ls | wc -l. Warum 300000..600000nicht 300001..600000? Weil ich zu faul war, diese 1 am Ende zu setzen.

df -i sieht aus wie:

/dev/sda6            3055616 1133635 1921981   38% /home

Entfernen Sie nun die Testdateien (es cd ..&&rm -f testhat viel länger rmgedauert , verwenden Sie sie mit den Dateinamen):

rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f

und die Anzahl der verwendeten Inodes verringerte sich unmittelbar nach dem Entfernen der Dateien:

/dev/sda6            3055616  133634 2921982    5% /home

Beachten Sie, dass es eine schreckliche Idee ist, so große Dateien in einem einzigen Verzeichnis zu speichern, selbst wenn das Dateisystem so viele Dateien zulässt. Verwenden Sie zumindest einige Unterverzeichnisse mit einer Struktur wie f/i/l/e/filename.ext. Programme erwarten oft nicht so viele Dateien.

Lekensteyn
quelle
1
ext4ist ein Dateisystemtyp, keine Dateierweiterung. Können Sie kein Verzeichnis für die Bearbeitung in der Warteschlange erstellen? Ich bezweifle, dass diese Programme mit so großen Dateigrößen gut laufen können.
Lekensteyn
1
Natürlich kann ich. Ich stelle mir nur Probleme vor, bevor ich zu ihnen komme. Sie haben Recht mit Adobe After Effects, das wird sicherlich zum Absturz führen, aber zweifeln Sie nicht daran, dass Autodesk-Leute erstaunliche Codestücke erstellen ... =) sieht aus wie die Verwendung eines Ferrari. Sehr einfach zum Absturz zu bringen, sehr schnell und kraftvoll, weil es am Boden blockiert ist. Hoffe, mein Englisch macht Sinn.
H_7
1
Ich verstehe es. Ja, genau 17.000 Ruf ^^
Lekensteyn
1
Öffnen Sie vor dem Löschen der Dateien dieses Verzeichnis in Nautilus und sehen Sie, was passiert;).
Mario
1
@bzero Bitte öffnen Sie dazu eine neue Frage.
Lekensteyn