ls -al
предоставит вам пространство, занятое самой директорией, не файлы внутри него.
Как таковой, он имеет минимальный размер. Когда каталог создается, ему предоставляется столько места для хранения информации о файлах, которая представляет собой заданное количество байтов на файл (скажем, 64 байта считали, что число может отличаться).
Если начальный размер был 4K, это позволило бы до 64 файлов. После того, как вы поместили более 64 файлов в каталог, его нужно было бы расширить.
Что касается Вашего комментария:
Причины, почему он не может получить меньше, когда вы удалите все файлы в нем, потому что обычно нет реального преимущества. Он просто остается того же размера, чтобы его не нужно было расширять снова в следующий раз, когда вы кладете в него ведро с файлами (оно, как правило, предполагает, что прошлое поведение является индикатором будущего поведения).
Если вы хотите уменьшить занимаемое пространство, для этого есть старый трюк. Чтобы уменьшить размер /tmp/qq
, создайте новый /tmp/qq2
, скопируйте все файлы (после удаления ненужных вам), затем просто переименуйте /tmp/qq
в /tmp/qq3
и /tmp/qq2
в /tmp/qq
. Вуаля! О да, со временем удалите /tmp/qq2
.
См. Http://stackoverflow.com/questions/1012488/when-running-ls-l-why-does-the-filesize-on-a-directory-not-match-the-output-of – kennytm
Вы можете хочу задать здесь этот вопрос: http://superuser.com/ Cheers =) – Andree