Rozmiar pliku Mac OSX „Get Info” vs „wc -c”

0

Stworzyłem różne nieskompresowane obrazy bitmapowe o tym samym rozmiarze pikseli (2000 x 2000) i różnej zawartości (czarny, czerwony, biały i zdjęcie), oczekując, że rozmiar pliku w bajtach będzie dokładnie taki sam, niezależnie od zawartości.

Oto wyniki:

  • polecenie wc -c zgłaszające ten sam rozmiar dla każdego obrazu (12000056 bajtów).
  • Hex Editor raportuje identyczne wyniki pod względem wielkości. Widzę również wyraźnie informacje o pikselach bitmapowych dla każdego kanału RGB, zgodnie z oczekiwaniami.
  • Mac OSX „Finder” i „Get Info” zgłaszają niewielkie różnice. (12 106 957, 12 005 274, 12 005 261 ...)

Co może uzasadnić te różnice? Czy to system operacyjny dodaje jakieś metadane? Coś związanego z systemem plików? Czy jest jakiś sposób, aby wiedzieć dokładnie, co się dzieje?

Joyce
źródło
Nie można odtworzyć tutaj błędu, a rozmiar powinien wynosić 1200005 4 bajty, ponieważ nagłówek bmp ma 54 bajty.
Chris.C
Tak, rozmiar jest dokładnie taki, jak w bajtach ... Planowałem publikować zdjęcia, ale nie mogę z powodu mojej reputacji lub jej braku na stronie administratora.
Joyce
Właściwie rozmiar, jaki otrzymuję, to 12000056. Po sprawdzeniu HEX ma on 54 bajty nagłówka, ale wszystkie pliki wydają się mieć dodatkowe 2 bajty (00 00) na końcu. Niezależnie od tego wszystkie mają ten sam rozmiar. Jedyną rozbieżnością jest „Get Info”.
Joyce
Może się zdarzyć, że pliki mają widelce zasobów lub coś podobnego, co Finder w tym w rozmiarze. Spróbuj użyć ls -l@plików, aby zobaczyć ich rozszerzone atrybuty i ich rozmiary.
Gordon Davisson,
Tak, to widelce zasobów. Przeczytam o tym więcej. Dziękuję Ci. Czy mógłbyś przepisać ten komentarz jako odpowiedź, abym mógł go zaakceptować?
Joyce,

Odpowiedzi:

0

Wygląda na to, że było to spowodowane tym, że pliki mają widelce zasobów, a także widelce danych. Widelce zasobów to stara (w większości przestarzała) funkcja systemu plików OS X, która może przechowywać dodatkowe dane na temat pliku. Finder weźmie pod uwagę rozwidlenie zasobów jako część rozmiaru pliku, ale większość narzędzi w stylu uniksowym nawet nie wie, że istnieją, a zatem nie będzie ich wyświetlać jako część rozmiaru pliku. Oto lista starego dokumentu, który mam:

$ wc -c About\ iMac\ Firmware\ Update 
    2710 About iMac Firmware Update
$ ls -l@ About\ iMac\ Firmware\ Update
-rwx---r-x@ 1 gordon  staff  2710 Sep 14  2001 About iMac Firmware Update
    com.apple.FinderInfo      32
    com.apple.ResourceFork  17759

Okno Informacje Findera pokazuje swój rozmiar jako 20 269 bajtów (= 2710 w rozwidleniu danych + 17 759 w rozwidleniu zasobów).

Gordon Davisson
źródło