Различия в размерах в du -hs и du -b - PullRequest
0 голосов
/ 12 февраля 2020

Когда я смотрю на du -hs для каталога, я получаю около 956k, но когда я делаю du -b для того же каталога, я получаю около 604347, что будет около 590k. Почему у меня такая большая разница (600 КБ против 956 КБ) между этими двумя командами. Я неправильно читаю?

Ответы [ 2 ]

2 голосов
/ 12 февраля 2020

Параметр -b делает две вещи: сначала он сообщает видимый размер вместо использования диска; во-вторых, он сообщает с гранулярностью одного байта.

Основная причина, по которой файл занимает больше места, чем его видимый размер или даже фактический размер, заключается в том, что файловая система работает с блоками фиксированного размера. Таким образом, даже файл размером всего 1 байт займет целый блок.

Вы видите эффект многих небольших файлов.

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

0 голосов
/ 12 февраля 2020

Если вы man du увидите, что -b эквивалентно --apparent-size --block-size=1, и это означает:

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

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