Z jakiegoś powodu, kiedy tworzę plik tekstowy w OS X, zawsze ma on co najmniej 4kB, chyba że jest pusty. Dlaczego to? Czy może być 4000 bajtów metadanych na około 1 bajt zwykłego tekstu?
filesystems
disk-usage
tkbx
źródło
źródło
:P
Odpowiedzi:
Rozmiar bloku systemu plików musi wynosić 4 kB. Gdy dane są zapisywane w pliku zawartym w systemie plików, system operacyjny musi przydzielić bloki pamięci, aby zawierały dane, które zostaną zapisane w pliku.
Zazwyczaj podczas tworzenia systemu plików pamięć zawarta w tym systemie plików jest dzielona na bloki o stałym rozmiarze. Artykuł w Wikipedii krótko wyjaśnia ten proces.
Podstawowy rozmiar bloku systemu plików dla tego pliku musi mieć rozmiar bloku 4 bajty. Ten plik używa 1 bloku 4K i tylko jeden bajt w tym bloku zawiera rzeczywiste dane.
źródło
Wszystkie systemy plików mają rozmiar klastra lub bloku lub najmniejszą ilość miejsca na dysku, którą można przydzielić do przechowywania pliku. Nawet jeśli rzeczywisty rozmiar pliku jest mniejszy niż rozmiar klastra / bloku, nadal zużywa jeden klaster lub 4K w systemie plików. Rozmiar klastra zależy od systemu plików i opcji systemu plików.
Jeśli zawiera zero bajtów, jak zauważył Gilles , używa zerowych bloków / klastrów, ale jeden i-węzeł w typowych systemach plików * nix, co lepiej odpowiada zastrzeżeniu, „chyba że jest puste”.
źródło
Mały eksperyment, który pomoże to zilustrować:
Najpierw zobaczmy, jaki jest rzeczywisty rozmiar bloku mojej partycji root ext4 (LVM):
Jest to 4096 (4 KiB), zgodnie z oczekiwaniami. Teraz utwórzmy trzy pliki: pierwszy to zero bajtów, drugi to tylko jeden bajt, a trzeci to 4 KiB (rozmiar bloku):
Teraz mamy
ls
katalog. Korzystamy z-s
opcji, aby zobaczyć przydzielony rozmiar (kolumna najbardziej na lewo) w liczbie 1024-bajtowych „bloków”.(ls nie wie, że rzeczywisty rozmiar bloku to 4096 - moglibyśmy określić,
--block-size
ale to wszystko skaluje o tę wartość i chcemy zobaczyć rzeczywisty rozmiar pliku również w bajtach) .Można tutaj odnotować dwie rzeczy:
Rzadkie pliki
Pliki rzadkie to pliki z dużymi blokami zer. Ponieważ wiadomo, że wszystkie dane są zerowe, nie ma sensu przechowywać ich na dysku. W ten sposób pozorny rozmiar pliku może faktycznie być większy niż rozmiar na dysku.
Dane wbudowane
Zauważ, że niektóre systemy plików pozwalają na przechowywanie bardzo małych plików w samym i- węzle . Zobacz Czy możliwe jest przechowywanie danych bezpośrednio wewnątrz i-węzła w systemie plików Unix / Linux? .
źródło