Qual è il numero massimo di cartelle consentite in una cartella in Linux?


17

Usando Redhat, se questo fa la differenza.

C'è un limite predefinito? Può essere cambiato? In caso contrario, esistono soluzioni alternative per aumentare il numero di cartelle consentite in una directory?

Risposte:


22

Dipende dal filesystem utilizzato dalla tua distribuzione. Se usi una nuova distribuzione desktop (cioè Ubuntu 9.10, una versione recente di Fedora), probabilmente usi ext4. Se usi qualcosa di più vecchio, è molto probabile ext3.



4

Potresti voler considerare delle alternative a qualunque cosa tu stia cercando di fare. Anche se rimani sotto il limite del filesystem (es. 32k per ext2), archiviare decine di migliaia di file in una singola directory può essere a dir poco ingombrante.

Una possibilità è che stai tentando di utilizzare il filesystem per qualcosa che sarebbe più adatto a un database. Prendi in considerazione la possibilità di archiviare i tuoi dati in un database PostgreSQL, MySQL o persino in sqlite. Non ci sono troppi filesystem che si adattano bene a un numero enorme di file: lo spostamento o il backup dei dati sarà lento.

Se hai davvero bisogno di archiviare molti file, prendi in considerazione strutture di directory alternative. Ad esempio, potresti essere in grado di separare i tuoi file in ordine alfabetico, ad esempio:

a/aaron.dat
a/alex.dat
a/alan.dat
b/bill.dat
b/brian.dat

Questo approccio può ridimensionarsi aumentando la profondità della separazione, ad esempio:

a/a/aaron.dat
a/l/alex.dat
a/l/alan.dat

Oppure, se si inseriscono file di registro giornalieri o si ricevono consegne giornaliere, è possibile separarli per data, ad esempio:

2009-10-04/logfile-01.txt
2009-10-05/logfile-01.txt
2009-10-05/logfile-02.txt

In questo caso particolare, si vorrebbe probabilmente anche cronizzare un lavoro per impacchettare vecchi registri in tarball compressi per ridurre il conteggio dei file.


1

I limiti delle cartelle sono il motivo per cui i sistemi aziendali che hanno a che fare con un numero arbitrario di file verranno archiviati in una o due sottodirectory basate su un hash del nome file. Ad esempio, md5 () il nome file e utilizzare i primi quattro byte come sottocartella per archiviare il file; per livelli aggiuntivi, utilizzare i successivi 4 per una sottocartella aggiuntiva o i successivi 4, ecc. La maggior parte dei sistemi non supererebbe mai i 2 livelli di profondità.

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.