У меня есть обычная папка, поэтому, когда я щелкаю правой кнопкой мыши, захожу в свойства и проверяю размер ее данных, она дает 37,3 КБ. Но когда я использую команду du, она показывает 104 КБ.
Разве эти двое не должны дать один и тот же ответ?
У меня есть обычная папка, поэтому, когда я щелкаю правой кнопкой мыши, захожу в свойства и проверяю размер ее данных, она дает 37,3 КБ. Но когда я использую команду du, она показывает 104 КБ.
Разве эти двое не должны дать один и тот же ответ?
Важно отметить, что жесткие ссылки имеют значение при вычислении размера каталога. Две жесткие ссылки на один и тот же файл не занимают больше места на диске и не имеют общего номера инода (по определению), но простой подсчет размеров файлов будет учитывать их вдвое.
Вот этот переключатель, по крайней мере, на GNU du:
-l, --count-links
count sizes many times if hard linked
Команда du рекурсивно спускается по всем каталогам и подкаталогам и всегда дает вам общее количество, содержащееся где-либо ниже.
Вкладка свойств в графическом интерфейсе не всегда делает это. Иногда есть флажок (там или в каком-либо другом диалоговом окне настроек), контролирующий, вычисляются ли размеры папок рекурсивно или только дает вам верхний уровень. Иногда, даже когда пользовательский интерфейс пытается рекурсивно вычислить размер, для его обновления требуется некоторое время, поэтому некоторое время он может отображать меньшее временное число, пока не дойдет до завершения полного рекурсивного поиска.
Поэтому неудивительно, что пользовательский интерфейс выдает меньшее число. Попробуйте найти предпочтения пользовательского интерфейса для этого.
ls -ls
и посмотрите как на размер в байтах, так и на размер в блоках. (Однако имейте в виду, что размер в блоках не обязательно предполагает 1 КБ блоков. Вы можете принудительно установить его, установив переменную среды BLOCKSIZE.)
- person Steve Summit; 18.06.2015
Ответ @Стива Саммита вместе с последующими комментариями упускают из виду некоторую полезную информацию для понимания проблемы:
ls -ls
не покажет скрытые подкаталоги.ls -las
.-R
.find . -ls
, который показывает подкаталоги.du
показывает блоки, которые содержат "много" байтовls
) говорит, что результат -s
различался в разных реализациях (например, некоторые могут отображать 1024): #P2#
du
говорит, что должно быть 512 -байтовые единицы, как и ls -l
.Чтобы учесть недостающее пространство:
Кстати, вариант -ls
для find
упоминается в стандарте только в обосновании а>. Но с линуксом работает.
du
выводит использование диска (фактическое количество байтов, используемых на диске), тогда как свойства файла отражают размер полезной нагрузки. - person collapsar   schedule 18.06.2015