Il n'y a aucune limitation au nombre d'entrées dans un répertoire, que ce soit dans POSIX ou dans les implémentations Unix typiques. Il peut y avoir une limite indirecte pour le nombre de sous-répertoires, qui est le nombre maximal de liens physiques (l' ..
entrée de chaque sous-répertoire est un lien physique vers le répertoire); c'est 2 16 pour de nombreux systèmes de fichiers courants, ce qui limite un répertoire à 65533 sous-répertoires (au moins pour les systèmes de fichiers qui stockent ..
explicitement les entrées). Vous commencerez à atteindre de mauvaises performances avant cela. Selon POSIX, une implémentation est autorisée à prendre en charge uniquement 8 liens durs sur un fichier ( _POSIX_LINK_MAX
), mais aucune implémentation réelle n'est limitée à 6 sous-répertoires. Et de toute façon, sur de nombreux systèmes de fichiers, y compris ext4, le nombre de liens durs n'est pas maintenu pour..
entrées, donc la seule limite est l'espace ou le nombre d'inodes disponibles sur le système de fichiers.
POSIX ne dit pas grand-chose sur l'organisation des fichiers sur le système. Il ne requiert l'existence que de quelques fichiers . Les seules entrées obligatoires dans le répertoire racine sont /dev
et /tmp
. D' autres entrées Unix habituelles telles que /usr
, /var
, /bin
, /etc
, /lib
, /home
, etc. sont Unix conventions qui ne sont pas codifiées par POSIX.
Sous Linux, le FHS codifie les classiques et quelques autres. La plupart des distributions Linux s'en tiennent aux entrées FHS. D'autres systèmes Unix ont généralement les mêmes entrées, peut-être avec quelques différences, mais le nombre est à peu près le même.
Les administrateurs système peuvent créer plus, bien que cela soit découragé: il y a des endroits bien définis pour la plupart des choses (le logiciel passe sous /usr
ou /opt
, les données système vont sous /var
, les données utilisateur vont sous /net
, les points de montage vont sous /media
ou /mnt
, etc.), donc il y a rarement aucune bonne raison de créer de nouveaux répertoires au niveau supérieur.