Combien de répertoires peuvent être imbriqués?

13

Je suis curieux, combien de dossiers peuvent être imbriqués et pourquoi? Y a-t-il une limite?

Ce que j'entends par imbriqué, c'est quand les dossiers sont dans cette structure:

folder
 |_ folder
     |_ folder
         |_ folder
             |_ ...

Pas comme ça:

folder
 |_ folder
 |_ folder
 |_ folder
 |_ ...

S'il y a une limite, est-elle fixée par le système d'exploitation ou par le système de fichiers?

Aaron Esau
la source

Réponses:

20

La limite sera le nombre de inode s sur votre partition puisque les répertoires, comme les fichiers normaux, prennent chacun un inode.

Rien ne vous empêcherait de créer un répertoire à l'intérieur d'un répertoire dans un autre répertoire et ainsi de suite jusqu'à ce que vous manquiez de inodes.

Notez que la ligne de commande du shell a une longueur maximale qui peut causer des problèmes avec des chemins très longs, mais il serait toujours possible de cdprogresser progressivement vers le fichier cible.

Julie Pelletier
la source
2
En effet, par expérience c'est ce qui mkdir -pfait et ça permet de dépasser MAX_PATH. De tels fichiers ne peuvent pas être ouverts par leur chemin canonique, mais on peut les créer sans problème.
DepressedDaniel
1
C'est assez logique, en fait. Un chemin relatif commence au répertoire de travail actuel, un inode. Les inodes ne sont pas organisés hiérarchiquement: il n'y a pas de différence à cet égard entre un répertoire qui est lié profondément dans la hiérarchie des noms et le répertoire racine du système de fichiers.
Johan Myréen
3
@JuliePelletier L'API POSIX (et Linux) définit un PATH_MAX maximum (4096 sous Linux), qui est beaucoup plus court que la longueur maximale de la ligne de commande. Et tandis que nous sommes tatillons: la ligne de commande maximale n'est pas vraiment une restriction shell. La limite est imposée par la longueur du vecteur d'argument à l' execveappel système et s'applique donc à tout programme.
Johan Myréen
1
@ JohanMyréen: Ce sont de bonnes observations mais mon point de vue était qu'il serait toujours accessible relativement, peu importe la profondeur.
Julie Pelletier
2
@Arin Try df -i.
Johan Myréen