¿Cuánto espacio ocupan los directorios vacíos?
En el sistema de archivos de Windows y NTFS dice '0 bytes', lo cual es imposible.
¿Cuánto es realmente ocupado por un directorio? ¿Depende del sistema de archivos o del sistema operativo?
filesystems
disk-space
ShadowHero
fuente
fuente
Respuestas:
Técnicamente, lo que la Ventana de Propiedades le muestra es el contenido de la carpeta, que si está vacío ocupa 0 bytes en cualquier disco.
Tu pregunta trata sobre qué espacio de la carpeta. estructura ocupa un sistema de archivos, que obviamente depende de él. En FAT32, las únicas cosas que necesita almacenar son algunas banderas (ocultas, archivadas) y el nombre y la ruta. En NTFS también necesitas almacenar permisos y algunas cosas más. Con todo, ese espacio es casi insignificante.
El espacio un directorio vacío estructura ocupa depende del nombre y la ruta de la carpeta. Como ejemplo, suponga que coloca todas las carpetas en una unidad raíz (por ejemplo, C :) y usa los 26 caracteres alfabéticos; con 1 billón de nombres únicos, puede tener log_26 (1.000.000.000) = aproximadamente 7 (6.3065) nombre de la carpeta de longitud de caracteres. Por lo tanto, 7 bytes * 1.000.000.000 equivalen a aproximadamente 7 GB de espacio.
Este es un mínimo basado solo en la cantidad de espacio que los nombres deben tener en cualquier estructura. Como se mostrará, los sistemas de archivos almacenan mucha más información además del nombre de archivo en su estructura de archivos.
Creo que tengo alrededor de 1 millón de carpetas y archivos en todas mis unidades de modo que el valor ni siquiera se alcanza en la realidad. No olvides que esta es una estimación muy aproximada.
Los sistemas de archivos más utilizados en el momento actual pueden considerarse (posiblemente) como FAT (Tabla de asignación de archivos) y NTFS (Sistema de archivos de nueva tecnología). GORDO como sabemos, ha estado en uso desde 1996, cuando se lanzó Windows 95 con FAT32. Aunque reemplazado por otros sistemas de archivos más resistentes, como NFTS (Windows), HFS + (OSX) o ext3 (Linux), todavía se usa ampliamente en dispositivos de mano o en tarjetas de memoria o unidades flash, ya que es compatible con la mayoría de los sistemas operativos Y sobre todo, es simple.
Ahora para lo que importa. Los archivos y directorios en una partición FAT, incluso si no tienen nada en ellos, tienen un nombre, una ubicación, ciertos atributos, etc., que se almacenan en una zona llamada tabla de directorio .
los tabla de directorio es un archivo especial (es decir, está oculto para el uso regular, de modo que solo el SO y ciertas aplicaciones pueden acceder directamente a él). Representa un directorio (también conocido como carpeta) y cualquier archivo o carpeta almacenado dentro tiene una entrada de 32 bytes en la tabla. Como el tabla de directorio es un archivo, luego ocupa uno o más grupos (es decir, cajas con un tamaño preestablecido dentro de un disco, donde solo cabe un archivo (o una parte de uno)).
Por lo tanto, cualquier carpeta o directorio, en una unidad moderna (& gt; 512 MB), tiene al menos Una sobrecarga de 4 KB, para almacenar la tabla. (fuente) . Sin embargo, esto significa que puede almacenar 128 archivos diferentes (4 * 1024 B / 32 B = 128) en la misma carpeta y la sobrecarga al almacenar los registros sigue siendo el mismo 4KB que antes.
Aprovechando el primer ejemplo, esto significaría que los mil millones de carpetas tendrían una sobrecarga de 32 GB, en lugar de los aproximadamente 7 GB calculados. Estos 32 GB almacenan no solo el nombre corto (8 caracteres ASCII), sino también los atributos, marcas, fechas de acceso, creación y modificación y otros atributos heredados.
Suponiendo que lea todo esto, podría haber una pregunta que podría tener: "Bueno, esto está muy bien, pero cómo son los nombres largos, como Wabbajack o incluso nombres de hash como e4d909c290d0fb1ca068ffaddf22cbd0 , almacenado? "
Microsoft en Windows 95 decidió agregar esa característica para mejorar la experiencia del usuario. Para evitar romper un sistema "casi estándar", utilizaron una solución ordenada llamada VFAT (FAT virtual). Esencialmente para poder ajustar el nombre largo del archivo en el archivo, se escribieron registros adicionales antes del registro del archivo real (con algunos atributos especiales que no deben ser vistos por sistemas anteriores). El sistema de nombre de archivo largo permite una longitud máxima de 255 caracteres UTF-16 (Unicode) (fuente) (fuente) .
Si tuviera que cambiar el primer ejemplo de modo que cada carpeta tuviera 9 caracteres, entonces la sobrecarga se duplicaría de 32 GB a 64 GB, ya que sería necesario escribir un registro más para almacenar el nombre largo.
De acuerdo con la Wikipedia En el artículo sobre NTFS, todos los permisos se almacenan en la Tabla maestra de archivos. El espacio se puede ver aparentemente a través del Desfragmentador de disco, como se muestra en aquí .
El tamaño que ocupa un registro MFT desde una carpeta o un archivo, se describe en aquí :
Entonces, en NTFS, las carpetas ocupan al menos 1 KB de espacio, a menos que tengan listas de permisos y argumentos muy largas; en ese momento, el registro MFT ocupa un clúster adicional en la partición, cuyo tamaño depende de cómo se formateó, aunque para más de 2GB Microsoft en esa publicación recomienda clústeres de 4 KB.
fuente
Para un ejemplo del mundo real, acabo de grabar mi espacio libre, luego creé una gran estructura de directorios y resté la nueva versión gratuita para encontrar la cantidad de espacio utilizado. Creé los directorios 0-6 para cada día de la semana, luego dentro de los directorios 0-23 para las horas del día, luego 0-59 para los minutos de la hora. En total sus 10.080 directorios. El uso de mi disco cambió en 6,926,336 bytes. Eso funciona a 687 bytes por directorio. En caso de que le importe, eso también equivale al 0,0006% de una unidad de 1TB (si calcula 1TB como 1024 ^ 4).
fuente
En Windows 10 creé 1,000,000 carpetas vacías y, según Python's
getsize
función, ocupó 200540160 bytes de espacio. Eso es un promedio de 200.54016 bytes por carpeta.fuente