Risposte:
È la dimensione iniziale necessaria per memorizzare i metadati sui file contenuti in quella directory (compresi i nomi). L'allocazione iniziale equivale alla dimensione di un settore, ma può aumentare oltre quella se necessario. Una volta allocato, lo spazio non viene liberato se i file vengono rimossi, per ridurre la frammentazione.
Per esempio:
$ 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/
A volte 4096 byte è la più piccola unità di allocazione per alcuni filesystem. Ecco perché la directory ha 4096.
Lo stesso vale per i file. Anche se alcuni file potrebbero riportare meno di 4096, in realtà stanno prendendo almeno 4096 di spazio di archiviazione dal disco.
4096 è riservato per ridurre la frammentazione, poiché spesso le dimensioni effettive dei metadati contenuti fluttuano in base al contenuto della directory. Se è in costante crescita e riduzione (diciamo che conteneva file di registro o contenuto dinamico) nel tempo, ciò potrebbe compromettere le prestazioni. Questo probabilmente non accadrà con una cartella, ma in tutto il file system si sommerebbe rapidamente.
Dipende dal filesystem. Su ext2 / 3/4 "è" 4096. Su reiserfs può essere 9608 (my $HOME
) 1032 ( /tmp
) o 48 (alcuni dir in /tmp
).
Per impostazione predefinita, il blocco ext2 / 3/4 è 4096 - e il file non può richiedere meno di quello. Se il file è più piccolo, richiede comunque un intero blocco. Poiché è inutile chiedere informazioni sulla dimensione logica della directory e questa informazione non è probabilmente su disco in ogni caso e deve riportare qualcosa che riporta una dimensione di blocchi per il numero di blocchi occupati, cioè lo spazio fisico che è stato occupato.
actual
dimensioni del file.
\0
è il carattere legale nei file binari. PS. È possibile creare FS che non lo memorizzano, ma non solo in modo familiare (e probabilmente nessun altro popolare).