Почему при запуске ls -l размер файла в каталоге не совпадает с выводом du? - PullRequest
3 голосов
/ 18 июня 2009

Что означает 4096 при выводе ls -l?

[root@file nutch-0.9]# du -csh resume.new/
2.3G    resume.new/
[root@file nutch-0.9]# ls -l 
total 55132
drwxr-xr-x  7 root root     4096 Jun 18 03:19 resume.new

Ответы [ 4 ]

10 голосов
/ 18 июня 2009

что каталог занимает 4096 байт дискового пространства (не включая его содержимое).

5 голосов
/ 18 июня 2009

Мне тоже было интересно. Итак, после поиска я наткнулся:

"Это размер, необходимый для хранения метаданные о файлах (включая имена файлов, содержащихся в этом каталог). Количество файлов / подкаталоги в данный момент времени могут не сопоставлять напрямую с указанным размером, потому что когда-то выделено, пространство не освобождается, если количество файлов изменяется. Такое поведение имеет смысл для большинства случаи использования (где дисковое пространство дешево, и как только каталог имеет много файлы в нем, вероятно, будут иметь их снова в будущем), и помогает уменьшить фрагментацию. "

Ссылка: http://www.linuxquestions.org/questions/showthread.php?p=2978839#post2978839

1 голос
/ 22 июня 2009

4096, в вашем примере, это количество байтов, используемых самим каталогом. Другими словами, это пространство, необходимое для хранения списка элементов, содержащихся в каталоге. Это , а не , как предполагает заголовок вопроса, сумма пространства всех элементов, хранящихся в каталоге.

Вы не говорите, какую систему вы используете, но во многих файловых системах UNIX / Linux минимальная единица выделения памяти составляет 4 КБ, поэтому размер отображается как 4096. Записи каталога для двух элементов, плюс "." и ".." должно занимать значительно меньше места.

1 голос
/ 21 июня 2009

Каталоги похожи на файлы с кортежами и специально обрабатываются файловой системой. Размер, сообщаемый ls, является размером этого "файла". Проверьте этот ответ в Server Fault , чтобы узнать, как каталоги скрыты.

Таким образом, 4096 байт, скорее всего, означают, что размер блока файловой системы равен 4096, и этот каталог в настоящее время использует один блок для хранения этой таблицы имен и индексов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...