Utiliser Redhat, si cela fait une différence.
Y a-t-il une limite par défaut? Peut-il être changé? Sinon, existe-t-il des solutions de contournement pour augmenter le nombre de dossiers autorisés dans un répertoire?
Cela dépend du système de fichiers utilisé par votre distribution. Si vous utilisez une distribution de bureau plus récente (c'est-à-dire Ubuntu 9.10, une version récente de Fedora), vous utilisez probablement ext4. Si vous utilisez quelque chose de plus ancien, c'est probablement ext3.
En ext2, 32 768 selon Wikipedia - http://en.wikipedia.org/wiki/Ext2fs#File_system_limits . Cela dépend du système de fichiers que vous utilisez.
Vous voudrez peut-être envisager des alternatives à tout ce que vous essayez de faire. Même si vous restez sous la limite du système de fichiers (par exemple, 32 Ko pour ext2), le stockage de dizaines de milliers de fichiers dans un seul répertoire peut être pour le moins lourd.
Une possibilité est que vous essayez d'utiliser le système de fichiers pour quelque chose qui serait plus adapté à une base de données. Pensez à stocker vos données dans une base de données PostgreSQL, MySQL ou même une base de données sqlite. Il n'y a pas trop de systèmes de fichiers qui gèrent bien un grand nombre de fichiers - le déplacement ou la sauvegarde de vos données sera lent.
Si vous avez vraiment besoin de stocker de nombreux fichiers, envisagez d'autres structures de répertoires. Par exemple, vous pouvez séparer vos fichiers par ordre alphabétique, par exemple:
Cette approche peut évoluer en augmentant la profondeur de votre séparation, par exemple:
Ou si vous saisissez des fichiers journaux quotidiens ou recevez des livraisons quotidiennes, vous pouvez les séparer par date, par exemple:
Dans ce cas particulier, vous souhaiterez probablement également créer un travail pour empaqueter les anciens journaux dans des archives tar compressées afin de réduire le nombre de fichiers.
la source
Les limites de dossiers sont la raison pour laquelle les systèmes d'entreprise qui doivent traiter un nombre arbitraire de fichiers seront stockés dans un ou deux sous-répertoires en fonction d'un hachage du nom de fichier. Par exemple, md5 () le nom de fichier et utilisez les quatre premiers octets comme sous-dossier pour stocker le fichier; pour les niveaux supplémentaires, utilisez les 4 suivants pour un sous-dossier supplémentaire, ou les 4 suivants après cela, etc. La plupart des systèmes ne dépasseraient jamais 2 niveaux en profondeur.
la source