Я создал каталог, куда я поместил десять файлов, каждого точно с 1 048 576 символами (1024^2). Размер каждого из них должен быть точно один мегабайт, считая мегабайт как 1024^2 байты.
Если я использую ls - люфтганза на том каталоге, это - вывод
[ me: /home/me/test ] ls -lh the_directory
total 11M
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f0
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f1
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f2
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f3
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f4
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f5
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f6
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f7
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f8
-rw-r--r-- 1 me we 1.0M Feb 1 17:11 f9
Почему это составляет в целом 11M, если сумма colum точно 10.0M? Если я делаю ls-lha, то я вижу что каталоги .
и ..
счет на 4 КБ каждый. В этом каталоге нет НИЧЕГО ИНОГО.
Почему это так?
Это было сделано в поле Linux.
Это - потому что существует две дополнительных 4K записи (.
и ..
), маленький 4K наверху на каждом файле (это - блок метаданных), и ls
всегда округляет в большую сторону размеры.
Попробовать ls -lash
(это покажет 'дисковый' размер файлов, т.е. с любым дополнительным non-user-data, сохраненным на диске):
total 11M
4.0K drwxr-xr-x 2 whitequark whitequark 4.0K 2010-02-02 06:15 .
4.0K drwxr-xr-x 85 whitequark whitequark 4.0K 2010-02-02 05:33 ..
1.1M -rw-r--r-- 1 whitequark whitequark 1.0M 2010-02-02 06:15 f0
...
1.1M -rw-r--r-- 1 whitequark whitequark 976K 2010-02-02 06:20 f9
Если Вы запросите размер в килобайтах с ls -las
, Вы доберетесь:
total 10288
4 drwxr-xr-x 2 whitequark whitequark 4096 2010-02-02 06:15 .
4 drwxr-xr-x 85 whitequark whitequark 4096 2010-02-02 05:33 ..
1028 -rw-r--r-- 1 whitequark whitequark 1048576 2010-02-02 06:15 f0
...
1028 -rw-r--r-- 1 whitequark whitequark 1048576 2010-02-02 06:18 f9
Кроме того, при сокращении размера последнего файла 48K (издержки), Вы доберетесь 10M (т.е. 10240K) каталог:
total 10M
4.0K drwxr-xr-x 2 whitequark whitequark 4.0K 2010-02-02 06:15 .
4.0K drwxr-xr-x 85 whitequark whitequark 4.0K 2010-02-02 05:33 ..
1.1M -rw-r--r-- 1 whitequark whitequark 1.0M 2010-02-02 06:15 f0
...
1.1M -rw-r--r-- 1 whitequark whitequark 1.0M 2010-02-02 06:15 f8
980K -rw-r--r-- 1 whitequark whitequark 976K 2010-02-02 06:20 f9