Jawaban:
Ini adalah ukuran ruang pada disk yang digunakan untuk menyimpan informasi meta untuk direktori (yaitu tabel file yang termasuk direktori ini). Jika 1024 yaitu ini berarti bahwa 1024 byte pada disk digunakan (selalu mengalokasikan blok penuh) untuk tujuan ini.
"Ukuran direktori" yang dicetak dengan ls -l
adalah (seperti halnya jenis file apa pun) nilai yang dilaporkan oleh stat()
panggilan masuk statbuf.st_size
.
Apa st_size
artinya ini untuk direktori, sepenuhnya tergantung pada jenis sistem file. Kecuali Anda tahu tipe sistem file dan memahami konsepnya, Anda tidak dapat menyimpulkan apa pun dari nilainya st_size
.
Dalam sistem berkas bersejarah UNIX yang saat ini biasa dinamai v7-fs
, direktori diulangi entri 16 byte yang berisi nomor inode 16 bit dan 14 byte nama file. "Ukuran" suatu direktori sangat berarti sehubungan dengan read(2)
operasi dan memang selalu tumbuh atau tetap apa adanya. The .
dan ..
entri yang dibuat secara manual keras menghubungkan mereka melawan arus dan direktori tingkat atas. Jumlah tautan untuk direktori kosong gadis waras adalah 2.
Dalam sistem file BSD-4.2 yang sejak 1989 (SVr4) dipanggil ufs
, direktori adalah serangkaian catatan panjang variabel yang menggunakan format yang tidak diberikan untuk menjadi stabil, sehingga perintah ruang pengguna tidak diizinkan untuk membaca format ini. "Ukuran" yang dilaporkan adalah ukuran dalam byte seperti pada v7-fs, ukurannya biasanya tumbuh atau tetap apa adanya, tetapi versi sistem file yang lebih baru dapat mengecilkan ukuran dalam beberapa kondisi - tetapi tidak selalu ketika Anda mengharapkan ini. Jumlah tautan yang dilaporkan untuk direktori kosong adalah 2 sama dengan v7-fs
.
Dalam WOFS
, filesystem saya dirancang dan dilaksanakan antara musim panas 1988 dan Mei 1991, direktori selalu melaporkan "ukuran" 0 dan tidak pernah memiliki jenis konten yang dapat dibaca menggunakan read(2)
panggilan. Ini karena WOFS
ini adalah sistem file Copy-on-Write pertama dan karena dalam WOFS
file melaporkan direktori mereka bukannya terdaftar dalam direktori. Jika Anda membaca WOFS
direktori menggunakan readdir()
, Anda hanya mendapatkan data untuk entri yang dimaksud, tetapi tidak pernah untuk .
dan ..
. Hitungan tautan dari direktori kosong WOFS
adalah 1 dan seluruh perilaku benar-benar memenuhi syarat POSIX.
Dalam ZFS
, itu dilaksanakan setelah membaca WOFS
koran. ZFS
adalah sistem file copy-on-write dan penulisnya tidak menyangkal bahwa mereka menyalin konsep dari WOFS
. Direktori pada ZFS melaporkan number of directory entries
dalam st_size
, jadi "ukuran" yang dilaporkan tidak memiliki arti nyata sehubungan dengan ruang disk yang digunakan dari data direktori. Tidak ada .
dan ..
entri dalam direktori ZFS, tetapi jika Anda menelepon readdir()
, entri ini dipalsukan dan dikembalikan untuk dua operasi pertama. ZFS adalah satu-satunya FS dalam daftar yang tidak mendukung direktori-direktori hard-link tetapi jumlah tautan yang dilaporkan untuk direktori selalu 2. Kedua penyimpangan dalam ZFS ini diterapkan untuk mengurangi kebingungan dalam program historis non-POSIX.
Mirip dengan ZFS, WAFL menyalin beberapa tetapi tidak semua ide dari WOFS
. Netapp WAFL
ditulis 3 tahun setelah WOFS
makalah ini diterbitkan, WAFL adalah copy-on-write, tetapi WAFL tampaknya melaporkan nilai "ukuran" yang mungkin menjadi "ukuran direktori nyata" dengan asumsi bahwa direktori tersebut memiliki konten.
Direktori menyimpan 4096 byte (minimal) untuk meta-data tentang dirinya dan isinya.
Juga, 4096 byte adalah unit alokasi default (blok) untuk sistem file ext2 / ext3 / ext4 dan karenanya direktori tidak boleh lebih kecil.
Pada sistem file yang berbeda, Anda mungkin menemukan direktori dengan ukuran standar yang berbeda, yang disebabkan oleh ukuran blok default sistem file.
Ukuran direktori juga dapat tumbuh secara dinamis ketika mereka diisi, tetapi begitu mengisi ruang yang disediakan untuk meta-data tidak dapat dialokasikan kembali tanpa menghapus direktori.
Direktori adalah hanya direktori, seperti direktori telepon. Itu hanya file dengan daftar angka dan nama di sebelahnya. Setiap nomor merujuk file dalam sistem file (nomor inode) dan namanya adalah nama file.
Anda memerlukan ruang disk untuk menyimpan data itu, bagaimana itu dialokasikan dan tumbuh dan menyusut tergantung pada filesystem.