Собственная программа печатает разные размеры каталогов, чем DU [duplicate]

homes.sort(function(a, b){
  var nameA=a.prices.toLowerCase(), nameB=b.prices.toLowerCase()
  if (nameA < nameB) //sort string ascending
    return -1 
  if (nameA > nameB)
    return 1
  return 0 //default return value (no sorting)
})
20
задан knittl 17 April 2011 в 17:26
поделиться

4 ответа

Видимый размер - это количество байтов, которое ваши приложения считают файлом. Это объем данных, которые будут передаваться по сети (не считая заголовков протоколов), если вы решили отправить файл по FTP или HTTP. Это также результат cat theFile | wc -c и количество адресного пространства, которое будет занимать файл, если вы загрузили все это с помощью mmap.

Использование диска - это объем пространства, который нельзя использовать для чего-то другого, потому что ваш файл занимает это пространство.

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

22
ответ дан Ken Bloom 21 August 2018 в 01:46
поделиться
  • 1
    благодаря! это подробное объяснение. то почему мне нужно иметь --block-size=1 для того же выхода, что и wc -c theFile (сохранение процесса cat). похоже, что du выводит только правильное количество байтов, когда я указываю либо -h, -k, -m, -B1 и т. д.? но, может быть, это действительно другой вопрос? du по умолчанию выводит использование блока, а не использование байта? – knittl 17 April 2011 в 17:57
  • 2
    @knittl: Не знаю. – Ken Bloom 17 April 2011 в 20:00
  • 3
    Хорошее объяснение, но не говорит о --block-size=1, присутствующем в вопросе - -1. – Piotr Dobrogost 17 February 2017 в 19:41

Поскольку по умолчанию du дает использование диска, которое является таким же или больше размера файла. Как указано под -патентным размером

print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be
larger due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like
1
ответ дан Brian Carlton 21 August 2018 в 01:46
поделиться
  • 1
    так что же такое «видимый размер»? и я сталкиваюсь с совершенно противоположным: видимый размер почти всегда на несколько величин выше, чем использование диска – knittl 17 April 2011 в 17:34
  • 2
    Фактически по умолчанию он также может быть меньше на разделах с включенным сжатием. – ARA1307 27 June 2018 в 16:40

Сравните (например) du -bm с du -m.

-b устанавливает --apparent-size --block-size=1, но затем m переопределяет размер блока как 1M.

Аналогично для -bh по сравнению с -h: -bh означает --apparent-size --block-size=1 --human-readable, и снова h переопределяет размер блока.

0
ответ дан eebbesen 21 August 2018 в 01:46
поделиться

Файлы и папки имеют реальный размер и размер на диске

  • - видимый размер - реальный размер файла или папки
  • на диске - это количество байты файл или папка берет диск. То же самое при использовании только du

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

1
ответ дан hukko 21 August 2018 в 01:46
поделиться
Другие вопросы по тегам:

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