Ubuntu ne limite pas la taille d'un répertoire, il est imposé par le système de fichiers. Chaque fichier et répertoire est un soi-disant inode. Vous pouvez utiliser df -i
pour vérifier le nombre d'inodes utilisés et disponibles pour tous les systèmes de fichiers montés.
Je viens de créer 1 million et un fichier sans problème car ma limite d'inode pour ma partition domestique ext4 de 50 Go (46 Gio) est suffisamment grande.
J'ai utilisé l'expansion du shell pour créer les fichiers, combinée avec l' touch
utilitaire:
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
Cela crée 1000001 fichiers qui peuvent être vérifiés avec ls | wc -l
. Pourquoi 300000..600000
et non 300001..600000
? Parce que j'étais trop paresseux pour mettre ce 1 à la fin.
df -i
ressemble à:
/dev/sda6 3055616 1133635 1921981 38% /home
Maintenant, supprimez les fichiers de test (a cd ..&&rm -f test
pris beaucoup plus de temps, donc utilisez-les rm
avec les noms de fichiers):
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
et le nombre d'inodes en cours d'utilisation a diminué immédiatement après la suppression des fichiers:
/dev/sda6 3055616 133634 2921982 5% /home
Notez que même si le système de fichiers autorise un si grand nombre de fichiers, c'est une horrible idée de stocker de tels fichiers volumineux dans un seul répertoire. Utilisez au moins certains sous-répertoires avec une structure comme f/i/l/e/filename.ext
. Les programmes n'attendent souvent pas de si grandes quantités de fichiers.
ext4
est un type de système de fichiers, pas une extension de fichier. Vous ne pouvez pas créer un répertoire pour mettre en file d'attente les modifications? Je doute que ces programmes puissent fonctionner correctement avec de si grandes quantités de fichiers.