Quante directory possono essere nidificate?


13

Sono curioso, quante cartelle possono essere nidificate e perché? C'è un limite?

Quello che intendo per nidificato è quando le cartelle sono in questa struttura:

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

Non così:

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

Se esiste un limite, è impostato dal sistema operativo o dal file system?

Risposte:


20

Il limite sarà il numero di inodes sulla tua partizione poiché le directory, come i file normali, prendono un inode ciascuno.

Nulla ti impedirebbe di creare una directory all'interno di una directory all'interno di un'altra directory e così via fino a quando non esaurisci inodes.

Si noti che la riga di comando della shell ha una lunghezza massima che può causare problemi con percorsi molto lunghi, ma sarebbe comunque possibile cdavanzare progressivamente verso il file di destinazione.


2
In effetti, per esperimento questo è ciò che mkdir -pfa e permette di eccedere MAX_PATH. Tali file non possono essere aperti dal loro percorso canonico, ma è possibile crearli senza problemi.
Depresso

1
È piuttosto logico, in realtà. Un percorso relativo inizia nella directory di lavoro corrente, un inode. Gli Inodi non sono disposti in ordine gerarchico: non vi è alcuna differenza al riguardo tra una directory collegata in profondità nella gerarchia dei nomi e la directory principale del file system.
Johan Myréen,

3
@JuliePelletier L'API POSIX (e Linux) definisce un PATH_MAX massimo (4096 su Linux), che è molto più breve della lunghezza massima della riga di comando. E mentre stiamo puntando: la massima riga di comando non è in realtà una restrizione della shell. Il limite è imposto dalla lunghezza del vettore dell'argomento alla execvechiamata di sistema e quindi si applica a qualsiasi programma.
Johan Myréen,

1
@ JohanMyréen: quelle sono buone osservazioni, ma il mio punto era che sarebbe ancora accessibile relativamente, non importa quanto in profondità.
Julie Pelletier,

2
@Arin Try df -i.
Johan Myréen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.