Я хотел бы знать, почему размеры каталогов, которые я получаю при выполнении du -sh
, не совпадают с теми, которые показывает файловый менеджер. Что они делают по-другому и насколько велики мои данные на самом деле? Меня не очень интересует размер диска (из-за блоков и прочего), я просто хочу знать, насколько велики фактические данные.
Краткий ответ : файловый менеджер вычисляет с единицами на основе 1000, du
вычисляет по умолчанию с единицами на основе 1024. Из-за этого файловый менеджер просматривает файл размером 1024 байта как «1,024» кБ ", в то время как du
рассматривает его как" 1.000 кБ ". Это (буквально) умножается, если вы думаете о больших файлах, например, Мегабайты (1000 * 1000) против Мибибайта (1024 * 1024) или Гигабайта (1000 * 1000 * 1000) против Гибибайта (1024 * 1024 * 1024).
Длинный ответ : Разница проистекает из разных способов подсчета компьютеров и людей. Большинство современных человеческих обществ делают свою математику с десятичной системой на основе 10. Не все культуры в истории делали, поэтому, например, мы делим день на 24 часов. Но в большинстве случаев мы используем 10, или кратные 10 или 10 для n-й степени. Это очевидно в Международной системе единиц (SI), которая использует префиксы для отметки 10 ^ 3 = 1000. 1000 грамм равны 1 * килограмм * грамм, 1000-я часть 1 метра равна 1 * милли * метр и т. д. Технически, 1000 килограмм - это 1 «мегаграмма», но традиционно мы используем другое слово «тонна». Тем не менее, он основан на 1000.
С другой стороны, компьютеры рассчитывают не на основе 10, а на основе 2 - вкл / выкл, питание / нет питания, истина / ложь. Следовательно, компьютеры используют умножения и степени 2 вместо умножений 10: 2, 4, 8, 16, 32, 64 и т. Д. Степень 2, ближайшая к 1000, равна 1024. Из-за этого «1 килобайт» изначально был определен не как «1000 байт», как большинство других единиц, а как «1024 байт». Таким же образом, «1 мегабайт» изначально был «1024 * 1024 байт», «1 гигабайт» изначально был «1024 * 1024 * 1024 байт» и так далее.
«Тогда», большинство людей, которые использовали компьютеры, знали об этом, и в порядке весов, которые использовались в те дни, это не имело значения. Размер файла составляет 1000 байт или 1024 байта, в большинстве случаев не имеет значения. Но время шло, компьютеры стали вездесущими, и их число увеличилось. Сегодня многие пользователи компьютеров не знают о 1000 против 1024, или им все равно. Не имеет особого смысла объяснять "Joe Everbody", что почти во всем "килограмм" означает "1000 из них", но с компьютерами это не так. Кроме того, разница начинает становиться существенной. Если вы сравните «гигабайт» на основе 1000 с «гигабайт» на основе 1024, разница составит примерно 10%. С «терабайтами» и больше разница еще больше.
Таким образом, в последние годы многие страны решили провести различие между этими двумя системами расчетов. Классические префиксы килограмм, мега, гига, тера и т. Д. Сегодня почти всегда используются на основе 1000. Таким образом, файл с 1024 байтами больше не будет «1000 килобайт», но «1,024 килобайт». Единицы, основанные на 1024, получили новые префиксы, с первым слогом «старого», за которым следует «би»: кило -> киби, мега -> миби, тера -> тэби и так далее. Символами являются KiB, MiB, TiB и т. Д.
Nautilus, файловый менеджер Ubuntu, рассчитывает на основе 1000. Таким образом, он показывает ваши размеры файлов в килобайтах, мегабайтах и т. Д. du
, с другой стороны, все еще рассчитывает на основе 1024. Таким образом, с du
вы видите ваши размеры файлов в kibibytes, mebibytes и т. д. И как уже было сказано выше, как только мы находимся в тера-тиби-диапазоне и выше, он начинает показывать;)
du
предлагает переключатель --si
. Он работает как -h
, но рассчитывается с единицами СИ вместо 1024. Таким образом,
du --si -s my_files/
даст вам размер в КБ, МБ, ГБ и т. Д., В то время как
du -sh my_files/
[ 1119] даст вам размер в КиБ, МиБ, ГиБ и т. Д.
Правильный способ определить правильное использование дискового пространства - использовать команду du
(du -sh
). Это потому, что ваш файловый менеджер (например, Nautilus) не учитывает скрытые файлы.
Или вы можете использовать Disk Usage Analyzer . Используйте следующую команду, чтобы запустить ее из терминала:
baobab
См. Также: Как найти - Размер каталога & amp; Свободное место на диске .
Я полагаю, вы используете Nautilus в качестве файлового менеджера: скрытые файлы не учитываются. Это известная ошибка с 2006 года .