Quantos diretórios podem ser aninhados?

13

Estou curioso, quantas pastas podem ser aninhadas e por quê? Existe um limite?

O que quero dizer com aninhado é quando as pastas estão nessa estrutura:

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

Assim não:

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

Se houver um limite, ele é definido pelo sistema operacional ou pelo sistema de arquivos?

Aaron Esau
fonte

Respostas:

20

O limite será o número de inodes na sua partição, já que diretórios, como arquivos regulares, recebem um inode cada.

Nada o impediria de criar um diretório dentro de um diretório dentro de outro diretório e assim por diante até você ficar sem inodes.

Observe que a linha de comando do shell tem um comprimento máximo que pode causar problemas com caminhos muito longos, mas ainda seria possível cdavançar progressivamente em direção ao arquivo de destino.

Julie Pelletier
fonte
2
De fato, por experiência, é isso que mkdir -pfaz e permite exceder MAX_PATH. Esses arquivos não podem ser abertos pelo caminho canônico, mas é possível criá-los sem problemas.
DepressedDaniel
1
É bem lógico, na verdade. Um caminho relativo inicia no diretório de trabalho atual, um inode. Os inodes não são organizados hierarquicamente: não há diferença a esse respeito entre um diretório que está profundamente vinculado na hierarquia de nomes e o diretório raiz do sistema de arquivos.
Johan Myréen
3
@JuliePelletier A API POSIX (e Linux) define um PATH_MAX (4096 no Linux) máximo, que é muito menor que o comprimento máximo da linha de comando. E enquanto estamos detalhando: a linha de comando máxima não é realmente uma restrição de shell. O limite é imposto pelo comprimento do vetor de argumento à execvechamada do sistema e, portanto, se aplica a qualquer programa.
Johan Myréen
1
@ JohanMyréen: Essas são boas observações, mas o que quero dizer é que ainda seria relativamente acessível, por mais profundo que fosse.
Julie Pelletier
2
@Arin Try df -i.
Johan Myréen