¿Cómo puede ser cero el tamaño de un archivo?
De vez en cuando, todos nos encontramos con una "situación" en nuestras computadoras que nos deja completamente desconcertados, como un archivo que tiene un tamaño de cero, pero ¿cómo es eso posible? La publicación de preguntas y respuestas de SuperUser de hoy tiene las respuestas a una pregunta confusa del lector.
La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..
La pregunta
El lector superusuario Eugene S quiere saber cómo el tamaño de un archivo puede ser cero:
Esto es algo que encontré y no pude pensar en una explicación adecuada. Si creo un vacío * .txt archivo en mi computadora y luego mirar su tamaño, muestra un tamaño de cero. ¿Cómo es eso posible? Quiero decir que incluso si el archivo está vacío, aún debe tener algún tamaño (incluso si es solo para almacenar su propio nombre). Cómo se puede explicar esto?
¿Cómo es posible que un archivo tenga un tamaño de cero??
La respuesta
Los colaboradores de Superusuario David Schwartz y Cort Ammon tienen la respuesta para nosotros. En primer lugar, David Schwartz:
Es posible porque realmente no hay ningún archivo. Solo hay una entrada de directorio con un nombre y un propietario. La entrada del directorio es lógicamente distinta del archivo. Por ejemplo, el mismo archivo puede tener más de un nombre en más de un directorio.
Desafortunadamente, el término archivo no siempre se usa para significar exactamente lo mismo. Pero la lógica del tamaño del archivo proviene del modelo donde una entrada de directorio adjunta un archivo a un directorio, luego los nombres de los archivos y los metadatos relacionados se almacenan en el directorio..
Seguido por la respuesta de Cort Ammon:
El significado semántico de tamaño de archivo es diferente del que está utilizando.
Hay muchos tamaños de archivos que son significativos. El más común, y el que está viendo aquí, es el número de bytes en el archivo. Si el archivo es un archivo de texto vacío, puede contener cero bytes. Este número es importante para los programadores porque a menudo necesitamos abrir un archivo, leer todos los datos y cerrarlo. Necesitamos saber cuántos bytes de datos habrá en el archivo para que podamos planificar con anticipación.
Otro significado surge de la forma en que la mayoría de los sistemas de archivos almacenan datos. La mayoría de los sistemas de archivos almacenan datos en bloques. Por ejemplo, el sistema de archivos puede almacenar datos en bloques de 64 kB, lo que significa que nunca asignará nada que no sea un múltiplo par de 64 kB. Esto suena ineficiente, pero puede hacer que la contabilidad sea un poco más simple y, a menudo, más simple significa más rápido.
Un tercer significado, al que está tirando, sería la cantidad real de bits requeridos en el disco duro para describir la presencia de un archivo. Esto incluye información que generalmente se almacena por separado del archivo. Por ejemplo, en Linux, el concepto del nombre del archivo se almacena en el inodo para el directorio que contiene el archivo. ElBasado en los comentarios de otros comentarios, esto se almacena (técnicamente) en los datos del directorio. Cuando escribí esto, estaba pensando en el caso del pequeño directorio. Los datos menores de 156 bytes se pueden almacenar directamente en el inodo.] Este no es un significado usado comúnmente porque es terriblemente difícil de determinar sin conocer el funcionamiento interno tremendamente profundo de su sistema de archivos (como la contabilidad del espacio necesario para almacenar todos los permisos en el archivo). Sin embargo, si tiene un disco duro de 1.000.000 bytes y desea saber qué tamaño de archivo puede caber en ese disco duro, este será un significado muy importante para usted.!
¿Tienes algo que agregar a la explicación? Apaga el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.