Вопрос по linux – Почему при запуске ls -l размер файла в каталоге не совпадает с выводом du?

3

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

[[email protected] nutch-0.9]# du -csh resume.new/
2.3G    resume.new/
[[email protected] nutch-0.9]# ls -l 
total 55132
drwxr-xr-x  7 root root     4096 Jun 18 03:19 resume.new
я нашел этоserverfault.com/questions/294301/… весьма актуален для этого вопроса. tacaswell

Ваш Ответ

4   ответа
1

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

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

5

"It's the size necessary to store the meta-data about files (including the file names contained in that directory). The number of files / sub-directories at a given time might not map directly to the size reported, because once allocated, space is not freed if the number of files changes. This behaviour makes sense for most use cases (where disk space is cheap, and once a directory has a lot of files in it, it will probably have them again in future), and helps to reduce fragmentation."

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

1

name, inode & gt; кортежи, и которые специально обрабатываются файловой системой. Размер, сообщаемый ls, является размером этого "файла".Проверьте этот ответ в Server Fault для обзора того, как каталоги находятся под капотом.

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

10

одержимого).

Похожие вопросы