¿Cuál es el número máximo de carpetas permitidas en una carpeta en Linux?

17

Usando Redhat, si eso hace la diferencia.

¿Hay un límite predeterminado? ¿Se puede cambiar? Si no, ¿hay alguna solución para aumentar la cantidad de carpetas permitidas en un directorio?

Chris
fuente

Respuestas:

22

Depende de qué sistema de archivos use su distribución. Si usa una distribución de escritorio más nueva (es decir, Ubuntu 9.10, una versión reciente de Fedora), probablemente use ext4. Si usa algo más antiguo, lo más probable es que ext3.

Mateo
fuente
11

En ext2, 32,768 según Wikipedia - http://en.wikipedia.org/wiki/Ext2fs#File_system_limits . Depende del sistema de archivos que use.

Pekka apoya a GoFundMonica
fuente
3
Sí. El recuento de carpetas está conectado al sistema de archivos, no al sistema operativo.
Satanicpuppy el
Parece que las protuberancias ext4 se limitan a un disco duro de 64k, pero admite incluso más que eso mediante ajustes
basszero el
4

Es posible que desee considerar alternativas a lo que sea que esté tratando de hacer. Incluso si permanece por debajo del límite del sistema de archivos (por ejemplo, 32k para ext2), almacenar decenas de miles de archivos en un solo directorio puede ser engorroso, por decir lo menos.

Una posibilidad es que intente utilizar el sistema de archivos para algo que sea más adecuado para una base de datos. Considere almacenar sus datos en PostgreSQL, MySQL o incluso en una base de datos sqlite. No hay demasiados sistemas de archivos que se adapten bien a una gran cantidad de archivos; mover o hacer una copia de seguridad de sus datos será lento.

Si realmente necesita almacenar muchos archivos, considere estructuras de directorios alternativas. Por ejemplo, puede separar sus archivos alfabéticamente, por ejemplo:

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

Este enfoque puede escalar aumentando la profundidad de su separación, por ejemplo:

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

O si ingresa archivos de registro diarios o recibe entregas diarias, puede separarlos por fecha, por ejemplo:

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

En este caso particular, es probable que también desee cron un trabajo para empaquetar registros antiguos en tarballs comprimidos para reducir el recuento de archivos.

Ryan Bright
fuente
1

Los límites de las carpetas son la razón por la cual los sistemas empresariales que tienen que lidiar con un número arbitrario de archivos se almacenarán en uno o dos subdirectorios basados ​​en un hash del nombre del archivo. Por ejemplo, md5 () el nombre del archivo y use los primeros cuatro bytes como una subcarpeta para almacenar el archivo; para niveles adicionales, use los siguientes 4 para una subcarpeta adicional, o los siguientes 4 después de eso, etc. La mayoría de los sistemas nunca superarían los 2 niveles de profundidad.

MightyE
fuente