Réponses:
C'est la taille initiale nécessaire pour stocker les métadonnées sur les fichiers contenus dans ce répertoire (y compris les noms). L'allocation initiale est égale à la taille d'un secteur, mais peut dépasser celle-ci si nécessaire. Une fois alloué, l'espace n'est pas libéré si les fichiers sont supprimés, pour réduire la fragmentation.
Par exemple:
$ mkdir testdir
$ cd testdir
$ ls -ld .
drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:28 ./
$ for ((i=0; i<1000; i++)); do touch some_longish_file_name_$i; done
$ ls -ld .
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
$ rm some_longish_file_name_*
$ ls -ld .
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
$ cd ..
$ ls -ld testdir
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 testdir/
$ rmdir testdir ; mkdir testdir
$ ls -ld testdir
drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:29 testdir/
Parfois, 4096 octets est la plus petite unité d'allocation pour certains systèmes de fichiers. C'est pourquoi le répertoire a 4096.
La même chose s'applique aux fichiers. Même si certains fichiers peuvent signaler moins de 4096, ils prennent en fait au moins 4096 de stockage sur le disque.
4096 est réservé pour réduire la fragmentation, car souvent la taille réelle des métadonnées contenues varie en fonction du contenu du répertoire. S'il augmente et diminue constamment (disons qu'il contenait des fichiers journaux ou du contenu dynamique) au fil du temps, cela pourrait nuire aux performances. Cela ne se produirait probablement pas avec un dossier, mais sur l'ensemble du système de fichiers, il s'additionnerait rapidement.
Cela dépend du système de fichiers. Sur ext2 / 3/4, il est "4096". Sur reiserfs, il peut être 9608 (my $HOME
) 1032 ( /tmp
) ou 48 (certains dir in /tmp
).
Par défaut, le bloc ext2 / 3/4 est 4096 - et le fichier ne peut pas en prendre moins. Si le fichier est plus petit, il prend tout de même un bloc entier. Comme il est inutile de se renseigner sur la taille logique du répertoire et cette information n'est probablement pas sur le disque de toute façon et il doit rapporter quelque chose qu'il rapporte une taille de bloc multipliée par le nombre de blocs pris, c'est-à-dire l'espace physique qui a été pris.
actual
taille du fichier.
\0
c'est le caractère légal dans les fichiers binaires. PS. Il est possible de créer des FS qui ne les stockent pas - mais tout simplement pas en famille (et probablement aucun autre populaire).