Может кто-нибудь объяснить, как выполняется этот расчет для использования диска? Я запутался, потому что в строке 1 4k , в строке 2 4k в строке 3 36k и всего также 36k

 $ du -ch
 4.0K   ./tempFolder
 4.0K   ./Folder1
 36K    .
36K total
2
Jeff Schaller 1 Май 2018 в 13:42

3 ответа

Лучший ответ

В выводе du -ch последняя строка — это сумма, которую вы запросили с помощью -c, а предпоследняя строка — это общий размер запрошенного вами каталога.

В вашем случае запуска du без указанного каталога он использует ., также известный как текущий каталог. Полный размер одного запрошенного каталога обычно также является общим размером. Обычно вы используете параметр -c, когда хотите, чтобы общий размер нескольких каталогов передавался команде du, т. е. du -ch /opt /srv /etc

Кроме того, вывод du -ch не показывает размеры отдельных файлов, а только их общее количество в каталоге. Не зная содержимого каталога, связанного с этим выводом, я бы предположил, что у вас есть 28 КБ обычных файлов в этой папке, а также в этих двух каталогах.

1
GracefulRestart 1 Май 2018 в 01:12
В этих 28 КБ также находится сам файл каталога (.).
 – 
Stéphane Chazelas
1 Май 2018 в 14:06

По умолчанию du показывает количество размеров только для каталогов в целом; количество файлов (точнее, не каталогов) не отображается по отдельности, но их размеры, очевидно, подсчитываются и суммируются с размером их родительского каталога.

Итак, в:

4.0K   ./tempFolder
4.0K   ./Folder1
36K    .
36K total
  • du показывает подсчет размера для текущего каталога (поскольку без аргумента пути к файловой системе он по умолчанию равен .), рекурсивно -- всего в 36K
  • каталоги ./tempFolder и ./Folder1 - оба имеют размеры 4K по отдельности (опять же вычисляются рекурсивно)

В качестве примечания: чтобы du показывал размер отдельных файлов, используйте -a/--all:

-a, --all
    write counts for all files, not just directories
2
heemayl 1 Май 2018 в 01:13

Вы можете попробовать этот способ.

du -ch location  | grep total
1
AdminBee 5 Авг 2020 в 11:10
Добро пожаловать на сайт, и спасибо за ваш вклад. Обратите внимание, однако, что OP не хочет изолировать общий итог от вывода du, но хочет понять, как это значение рассчитывается (в частности, учитывая, что это не просто сумма всех значений на строки над суммой).
 – 
AdminBee
5 Авг 2020 в 11:13