¿Cuál es el número máximo de archivos que puede contener una carpeta Unix?
Creo que será lo mismo que la cantidad de archivos.
linux
unix
filesystems
Peter Mortensen
fuente
fuente
Respuestas:
Varía según el sistema de archivos, http://en.wikipedia.org/wiki/Comparison_of_file_systems
fuente
En todos los sistemas de archivos Unix actuales, un directorio puede contener una cantidad prácticamente ilimitada de archivos. Mientras que "ilimitado" está limitado por el espacio en disco y los inodos , lo que se agote primero.
Con diseños de sistemas de archivos más antiguos ( ext2 , UFS , HFS + ) las cosas tienden a ser más lentas si tiene muchos archivos en un directorio. Por lo general, las cosas comienzan a ser dolorosas alrededor de 10,000 archivos. Con los sistemas de archivos más nuevos ( ReiserFS , XFS , ZFS , UFS2 ) puede tener millones de archivos en un directorio sin ver cuellos de botella en el rendimiento general.
Pero tener tantos archivos en un directorio no está bien probado y hay muchas herramientas que fallan. Por ejemplo, los scripts de mantenimiento periódico del sistema pueden irritarlo.
Felizmente usé un directorio con varios millones de archivos en UFS2 y no había visto ningún problema hasta que quise eliminar el directorio, que tardó varios DÍAS.
fuente
Depende de cuántos inodos se creó el sistema de archivos. Ejecutando
le dará la cantidad de inodos libres. Este es el límite práctico de cuántos archivos puede contener un sistema de archivos y, por lo tanto, un directorio.
fuente
Supongo que estás pensando en almacenar muchos archivos en un solo lugar, ¿no?
La mayoría de los sistemas de archivos Unix modernos pueden colocar muchos archivos en un directorio, pero las operaciones como seguir rutas, enumerar archivos, etc. implican una búsqueda lineal a través de la lista de archivos y se vuelven lentos si la lista crece demasiado.
Me parece recordar haber escuchado que un par de miles es demasiado para la mayoría de los usos prácticos. La solución típica es dividir la agrupación. Es decir,
y almacene sus archivos en el subdirectorio apropiado de acuerdo con un hash de ellos
basename
. Elija un hash conveniente, el primer personaje podría servir para casos simples.Cristian Ciupitu escribe en los comentarios que XFS , y posiblemente otros sistemas de archivos muy nuevos, usan
log(N)
estructuras de búsqueda para contener el contenido del directorio, por lo que esta restricción se mejora considerablemente .fuente
ext3
uno de los formatos de sistema de archivos de Linux más comunes se vuelve realmente lento si tiene alrededor de 20k + archivo en un directorio. Independientemente de la cantidad que pueda contener, debe intentar evitar tener tantos archivos en un directorio.fuente
Por el comentario que dejó, creo que realmente no le importa cuántos archivos / carpetas puede alojar su FS.
Probablemente debería considerar usar ModRewrite y reescribir site.com/username en site.com/?user= o algo por el estilo y almacenar todos sus datos en una base de datos. Por lo general, no es necesario crear una carpeta por usuario (y no es una buena idea).
Dicho esto, cada sistema de archivos tiene límites y
df
puede decirle cuántos inodos están disponibles en cada partición de su sistema.fuente