
Всегда, когда я запускаю ls -ld /dir
вывод, он выдает мне размер = 512, даже если в нем есть файлы или нет.
но когда я запускаю du -sh
вывод, он выдает мне фактический размер каталога, включая его содержимое.
решение1
На самом деле, если бы в вашем каталоге было много файлов, вы бы получили большее число: когда я создаю 10000 пустых файлов в новом каталоге, это число увеличивается с 4096 до 262144.
Начальный размер зависит от файловой системы и размера блока, указанных при создании файловой системы. Это показатель того, сколько метаданных содержит каталог (для файлов и каталогов, содержащихся в нем), а не того, сколько данных содержат файлы в каталоге.
Для сравнения: каталог с 10000 пустых файлов.
ls -ld . --> 262144
du -sh . --> 260K
Каталог с 10000 файлов по 100000 байт каждый:
ls -ld . --> 262144
du -sh . --> 977M
Метаданные имеют одинаковый размер для обоих наборов файлов (они также имеют абсолютно одинаковые имена).