
yo también he preguntadouna pregunta de hermanos para Windows.
En Linux (acabo de probar):
- El tamaño de una carpeta vacía es de 4 KB (independientemente de su nombre)
- El tamaño de un archivo vacío es de 0 bytes.
Sin embargo, los archivos y carpetas obviamente tienen nombres que deben almacenarse en algún lugar.
- ¿Dónde, aproximadamente, se almacenan?
- ¿La memoria máxima disponible para almacenar estos datos es un número predefinido o depende del espacio disponible en el disco?
- ¿Un archivo vacío con un nombre corto ocupa menos espacio que un archivo vacío con un nombre más grande? (¿O quizás la estructura de datos en la que se almacenan estos nombres tiene un recuento de bytes fijo para cada archivo, que quizás llena los bytes restantes con
\0
?) - ¿Una carpeta vacía con un nombre corto ocupa menos espacio que una carpeta vacía con un nombre más grande?
- ¿Una carpeta vacía llamada
foobar
ocupa menos espacio, el mismo espacio o más espacio que un archivo vacío llamadofoobar
? - ¿Un archivo vacío en
/etc/empty.txt
ocupa menos espacio, el mismo espacio o más espacio que un archivo vacío en/etc/long/nested/path/until/the/empty/file/is/reached/empty.txt
?
Respuesta1
Los nombres de los archivos se almacenan en el directorio. Un directorio se compone de entradas de directorio, y cada entrada de directorio contiene un nombre de archivo y el número de inodo para ese archivo. El inodo contiene varios metadatos, como la identificación del usuario y la identificación del grupo propietario del archivo, la hora en que se modificó el inodo por última vez, etc. Un archivo con un nombre más largo ocupará más espacio en el directorio. Puede haber varias entradas de directorio (en el mismo directorio o en directorios diferentes) que hagan referencia al mismo número de inodo. Cuando se crea una entrada de directorio adicional que apunta al mismo inodo, se denomina creación de enlace físico.
Hay una cantidad fija de inodos en la tabla de inodos, por lo que si crea una gran cantidad de inodos, eventualmente puede quedarse sin espacio en la tabla de inodos. (Puede ver cuántos inodos están en uso a través de "df -i". También puede crear el sistema de archivos con una gran cantidad de inodos, si prevé que el tamaño promedio de los inodos en el sistema de archivos sea más pequeño que el predeterminado. )
Los directorios también se componen de inodos y funcionan de manera muy similar a los archivos, con la siguiente excepción. En primer lugar, incluso un directorio "vacío" tendrá entradas de directorio para '.' (el directorio en sí) y ".." (el directorio principal), por lo que incluso un directorio "vacío" ocupará 4k de espacio. En segundo lugar, es posible que un directorio no tenga enlaces físicos. Es decir (ignorando las entradas '.' y '..'), sólo puede haber una entrada de directorio que haga referencia a un inodo de directorio. Esto significa que los directorios forman un árbol y no un gráfico generalizado.
Respuesta2
El comando ls muestra, entre otras cosas, el tamaño del archivo:
Si el archivo es un directorio, el tamaño que se muestra es el que le asigna el sistema.(Por bloque de 4K: 4096 bits para sistema de archivos ext4) incluso si contiene 0 bytes.
Si el archivo es normal, el tamaño que se muestra es el tamaño de su contenido, no el tamaño que ocupa el archivo.
Para saber el tamaño que ocupa el archivo, ya sea un archivo normal o un directorio, utilice el comando "du file_name"