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?

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.