Почему ls -lh не показывает общий размер всех файлов и каталогов в каждом каталоге?

758
Igorio

Например, оно показывает ядро ​​как 18M, а папка Applications - 3.8K.

BSD / Darwin

1

2 ответа на вопрос

3
Kirk

Согласно справочной странице для ls:

List information about the FILEs (the current directory by default). 

lsпредназначен для отображения размера файлов в файловой системе, а не для отображения использования каталога. duпокажет общее использование объекта файловой системы.

Так lsи делает то, что должен делать. В то время как ваш каталог приложений может содержать файлы, которые используют более 3,8 КБ, сам каталог приложений на самом деле имеет только 3,8 КБ на диске.

1
JdeBP

Потому что вы не в Windows, где мир делает вид, что каталоги не требуют места, а все каталоги имеют нулевую длину. (Некоторые части мира Windows делают вид, что размер каталога - это совокупный размер всех элементов, содержащихся в каталоге.)

В Unices и Linux эта ls -lкоманда при отображении записи каталога, указывающей на другой каталог, показывает размер каталога . Он показывает количество места, выделенного для фактического хранения записей в самом каталоге. Для каждой записи каталога ls -lвсегда отображается размер узла, на который указывает эта запись, будь то файл, символическая ссылка или каталог.

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