On Sat, 7 Dec 2013, Alexander Wiedergold WIEDERGOLD.NET wrote:
Am 26.11.2013 06:50, schrieb Vladimir Zhbanov:
On Mon, Nov 25, 2013 at 11:52:34PM +0800, [email protected] wrote:
...
Я тут внимательно прочитал первое письмо и потом man du.
Так вот -b == --apparent-size --block-size=1
Если файлы точно одинаковые, то очевидно должна
различаться apparent-size директорий.
Для примера можно так протестировать.
Создать пустую директорию и зайти туда
du -b .
должно быть 4096
затем
for ((i=1;i<1000;i++));do touch file_$i; done
и опять du -b .
У меня на разных разделах, но с абсолютно одинаковой
fs (ext4) получилось:
sda4: 24576
sda3: 28672
А вот почему так, я, честно говоря, и сам хотел бы узнать.
Ю.
Возможно дело в месте, которое ФС резервирует под имена файлов.
Я сделал два простых теста:
1. каталоги /tmp/a/ и /tmp/b/ наполнил файлами $i -- du показывает
одинаковые размеры
2. каталог /tmp/a/ наполнил файлами $i, а /tmp/b/ -- файлами,
скажем, asdf$i -- размеры разные
Причём во втором случае после удаления всех файлов из обоих
каталогов и создания новых с одинаковыми именами ($i) du -sb всё
равно показывает всё те же разные размеры для /tmp/a/ и /tmp/b/.
Да, длина имени файла влияет на размер блоков
У меня на обоих партициях все одинаково: файловые системы,
имена, папки создаю с нуля. А размеры получаются стабильно разные.
С помощью dumpe2fs удалось несколько прояснить ситуацию.
Партиция sda3 оказалась значительно фрагментирована.
Эти 999 inods выделились аш в трех группах в отличии от sda4,
где все уместилось в одной.
И если я правильно понимаю, то в первом случае почему-то на
самом деле выделилось 1000 inods. Точнее не понять,
но видимо в этом и дело.
Ю.