Я создал разные несжатые растровые изображения с одинаковым размером пикселя (2000x2000) и разным содержимым (черный, красный, белый и фотография), ожидая, что размер файла в байтах будет одинаковым независимо от содержимого.
Это были результаты:
- Команда wc -c сообщает об одном и том же размере для каждого изображения (12000056 байт).
- Hex Editor сообщает одинаковые результаты в размере. Я также могу ясно видеть информацию о точечных рисунках для каждого канала RGB, как и ожидалось.
- Mac OSX «Finder» и «Get Info» сообщают о небольших различиях. (12 106 957, 12 005 274, 12 005 261 ...)
Что может оправдать эти различия? Эта ОС добавляет метаданные? Что-то связано с файловой системой? Есть ли способ точно узнать, что происходит?
ls -l@
файлы, чтобы увидеть их расширенные атрибуты и их размеры.Ответы:
Похоже, это было связано с тем, что файлы имеют разветвления ресурсов, а также разветвления данных. Вилки ресурсов - это старая (в основном устаревшая) функция файловой системы OS X, которая может хранить дополнительные данные о файле. Средство поиска будет рассматривать ветвь ресурса как часть размера файла, но большинство инструментов в стиле Unix даже не знают, что они существуют, и, следовательно, не будут отображать их как часть размера файла. Вот список старого документа, который у меня есть:
Информационное окно Finder показывает его размер в 20 269 байт (= 2 710 в ветке данных + 17 759 в ветке ресурсов).
источник