GNU/Linux >> Belajar Linux >  >> Linux

Mengapa ukuran direktori selalu 4096 byte di unix?

Ini ukuran awal yang diperlukan untuk menyimpan meta-data tentang file yang terdapat dalam direktori itu (termasuk nama). Alokasi awal sama dengan ukuran satu sektor, tetapi dapat tumbuh di atasnya jika perlu. Setelah dialokasikan, ruang tidak dibebaskan jika file dihapus, untuk mengurangi fragmentasi.

Misalnya:

$ 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/

sumber


Terkadang 4096 byte adalah unit alokasi terkecil untuk beberapa sistem file. Itu sebabnya direktori memiliki 4096.

Hal yang sama berlaku untuk file. Meskipun beberapa file mungkin melaporkan kurang dari 4096, file tersebut sebenarnya menggunakan setidaknya 4096 penyimpanan dari disk.


4096 dicadangkan untuk mengurangi fragmentasi, karena seringkali ukuran sebenarnya dari metadata yang terkandung akan berfluktuasi berdasarkan isi direktori. Jika terus tumbuh dan menyusut (katakanlah itu berisi file log atau konten dinamis) seiring waktu, hal itu dapat merusak kinerja. Ini kemungkinan tidak akan terjadi dengan satu folder, tetapi di seluruh sistem file, itu akan bertambah dengan cepat.


Linux
  1. Mengapa Kami Menggunakan "./" (dot Slash) Untuk Mengeksekusi File Di Linux/unix?

  2. Linux – Bagaimana Menggabungkan Pohon Dengan Ukuran Direktori?

  3. mengapa output dari `du` seringkali sangat berbeda dari `du -b`

  1. Bagaimana cara mendapatkan ukuran direktori sebenarnya (keluar dari du)?

  2. Mengapa orang Linux selalu mengatakan untuk membaca manual?

  3. Mengapa direktori root dilambangkan dengan tanda /?

  1. Mengapa '~' Dipilih Untuk Mewakili Direktori Rumah?

  2. Linux – Mengapa Direktori Root Dilambangkan Dengan A / Sign?

  3. Menemukan Ukuran Sektor Dari Sebuah Partisi?