Ini sama sekali tidak berguna, tidak perlu dalam penggunaan praktis, tetapi posting kecil yang menyenangkan tentang direktori dalam sistem * nix. Jumat itu sama.
Pada wawancara, pertanyaan-pertanyaan membosankan tentang inode seringkali lolos, semua-adalah-file, yang hanya dijawab oleh beberapa orang. Tetapi jika Anda menggali sedikit lebih dalam, Anda dapat menemukan hal-hal aneh.
Untuk memahami posting beberapa poin:
- semuanya adalah file. direktori juga file
- ina inode meta data dari file disimpan, tetapi nama file tidak disimpan di sana
- nama file disimpan dalam data direktori
- ukuran direktori, yang sama yang ditunjukkan dalam ls dan default ke 4Kb, tergantung pada jumlah file dalam direktori dan panjang nama mereka
- jelas, semakin banyak file, semakin besar ukuran direktori
Dan sekarang untuk bagian yang menarik: buat direktori dengan sejuta file, periksa ukuran direktori, lalu hapus semua file dan lihat ukuran direktori.
$ mkdir niceDir && cd niceDir
Seperti yang Anda lihat, ukuran direktori tidak berubah, meskipun kelihatannya :)
Anda dapat memperbaiki ukuran direktori (tanpa menghapus) hanya dengan fsck (dan opsi -D) dalam keadaan unmount.
Tetapi ketika saya pergi mencari mengapa demikian, ternyata 10 tahun yang lalu perilaku ini sudah
dibahas dalam lkml. Dan menurut pengembang, perbaikannya tidak sebanding dengan usaha.