Câu trả lời:
Đó là kích thước ban đầu cần thiết để lưu trữ dữ liệu meta về các tệp có trong thư mục đó (bao gồm cả tên). Phân bổ ban đầu bằng với quy mô của một ngành, nhưng có thể tăng lên trên mức đó nếu cần thiết. Sau khi được phân bổ, không gian sẽ không được giải phóng nếu các tệp bị xóa, để giảm sự phân mảnh.
Ví dụ:
$ 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/
Đôi khi 4096 byte là đơn vị phân bổ nhỏ nhất cho một số hệ thống tập tin. Đó là lý do tại sao thư mục có 4096.
Điều tương tự áp dụng cho các tập tin. Mặc dù một số tệp có thể báo cáo ít hơn 4096, nhưng thực tế chúng đang lấy ít nhất 4096 dung lượng lưu trữ từ đĩa.
4096 được dành riêng để giảm phân mảnh, vì thường kích thước thực tế của siêu dữ liệu chứa sẽ dao động dựa trên nội dung thư mục. Nếu nó liên tục phát triển và thu hẹp (giả sử nó chứa các tệp nhật ký hoặc nội dung động) theo thời gian, nó có thể ảnh hưởng đến hiệu suất. Điều này có thể sẽ không xảy ra với một thư mục, nhưng trên toàn bộ hệ thống tệp, nó sẽ tăng lên nhanh chóng.
Nó phụ thuộc vào hệ thống tập tin. Trên ext2 / 3/4 nó "là" 4096. Trên reiserfs, nó có thể là 9608 (của tôi $HOME
) 1032 ( /tmp
) hoặc 48 (một số thư mục trong /tmp
).
Theo mặc định, khối ext2 / 3/4 là 4096 - và tệp không thể mất ít hơn thế. Nếu tập tin nhỏ hơn thì phải mất cả một khối. Vì thật vô nghĩa khi hỏi về kích thước logic của thư mục và thông tin này có lẽ không có trên đĩa và nó phải báo cáo một cái gì đó nó báo cáo kích thước của khối lần số khối được lấy, tức là không gian vật lý đã được lấy.
actual
kích thước tệp.
\0
là ký tự hợp pháp trong tệp nhị phân. Tái bút Có thể tạo ra FS không lưu trữ nó - nhưng không phải là ext familly (và có lẽ không phổ biến nào khác).