ls -ld /dir, Solaris

ls -ld /dir, Solaris

Всегда, когда я запускаю 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

Метаданные имеют одинаковый размер для обоих наборов файлов (они также имеют абсолютно одинаковые имена).

Связанный контент