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 -i
Sie 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 touch
Dienstprogramm:
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..600000
nicht 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 test
hat viel länger rm
gedauert , 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.
ext4
ist 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.