Odpowiedzi:
Jest to wielkość miejsca na dysku używanego do przechowywania meta informacji dla katalogu (tj. Tabeli plików należących do tego katalogu). Jeśli jest to 1024, oznacza to, że do tego celu używa się 1024 bajtów (zawsze przydziela pełne bloki).
„Rozmiar katalogu” wydrukowanego przy pomocy ls -l
jest (jak w przypadku każdego typu pliku) wartością zgłaszaną przez stat()
wywołanie w statbuf.st_size
.
Co to st_size
oznacza dla katalogów, całkowicie zależy od typu systemu plików. Jeśli nie znasz typu systemu plików i nie rozumiesz jego pojęć, nie możesz wywnioskować niczego na podstawie wartości w st_size
.
W historycznym obecnie znanym systemie plików UNIX v7-fs
powtarzano katalogi po 16 bajtów, które zawierały 16-bitowy numer i-węzła i 14 bajtów nazwy pliku. „Rozmiar” katalogu był znaczący w odniesieniu do read(2)
operacji i zawsze powiększał się lub pozostawał bez zmian . .
I ..
wpisy są tworzone ręcznie ciężko łącząc je pod prąd i katalogu na poziomie powyżej. Liczba linków do zdrowego pustego katalogu panieńskiego to 2.
W systemie plików BSD-4.2, który jest nazywany od 1989 roku (SVr4) ufs
, katalogi są serią rekordów o zmiennej długości, które używają formatu, który nie jest stabilny, więc komendy przestrzeni użytkownika nie mogą czytać tego formatu. Zgłaszany „rozmiar” to rozmiar w bajtach, tak jak w wersji 7-fs, rozmiar zwykle rośnie lub pozostaje taki, jaki jest, ale nowsze wersje systemu plików mogą się zmniejszać w pewnych warunkach - ale nie zawsze, kiedy można się tego spodziewać. Liczba podanych łączy dla pustego katalogu wynosi 2, jak w przypadku v7-fs
.
W WOFS
systemie plików, który zaprojektowałem i wdrożyłem między latem 1988 r. A majem 1991 r., Katalogi zawsze zgłaszają „rozmiar” 0 i nigdy nie zawierają treści, które można odczytać za pomocą read(2)
wywołania. Jest tak, ponieważ WOFS
jest to pierwszy system plików Copy-on-Write i ponieważ w WOFS
plikach zgłasza katalog, w którym się znajduje, zamiast być wymienionym w katalogu. Jeśli czytasz WOFS
katalog za pomocą readdir()
, otrzymujesz dane tylko dla zamierzonych wpisów, ale nigdy dla .
i ..
. Liczba linków pustego katalogu WOFS
to 1, a całe zachowanie jest całkowicie zgodne z POSIX.
W ZFS
, zostało to wdrożone po przeczytaniu WOFS
artykułów. ZFS
to system plików kopiowania przy zapisie, a jego autorzy nie przeczą, że skopiowali pojęcia WOFS
. Katalogi na ZFS zgłosić number of directory entries
in st_size
, więc stwierdzili, że „wielkość” nie ma żadnego realnego znaczenia w stosunku do zajmowanej przestrzeni dyskowej z danymi katalogowymi. Nie ma .
i ..
wpisy w katalogu ZFS, ale jeśli zadzwonisz readdir()
, wpisy te zostały sfałszowane i powrócił do pierwszych dwóch operacjach. ZFS jest jedynym FS na liście, który nie obsługuje katalogów z twardym dowiązaniem, ale zgłaszana liczba linków dla katalogów wynosi zawsze 2. Te dwie nieprawidłowości w ZFS są zaimplementowane w celu zmniejszenia nieporozumień w historycznych programach innych niż POSIX.
Podobnie jak ZFS, WAFL kopiuje niektóre, ale nie wszystkie pomysły WOFS
. Netapp WAFL
został napisany 3 lata po WOFS
opublikowaniu artykułu, WAFL jest kopiowany przy zapisie, ale wydaje się, że WAFL zgłasza wartości „rozmiar”, które mogą być „rzeczywistym rozmiarem katalogu” przy założeniu, że katalog ma treść.
Katalog rezerwuje 4096 bajtów (minimum) na metadane o sobie i jego zawartości.
Ponadto 4096 bajtów jest domyślną jednostką alokacji (blokiem) dla systemu plików ext2 / ext3 / ext4 i dlatego katalog nie może być mniejszy.
W różnych systemach plików możesz znaleźć katalogi o różnych rozmiarach domyślnych, co wynika z domyślnego rozmiaru bloku systemu plików.
Rozmiary katalogów mogą również dynamicznie rosnąć w miarę ich zapełniania, ale po zapełnieniu miejsca zarezerwowanego dla metadanych nie można ponownie przypisać bez usunięcia katalogu.
Katalog jest po prostu katalogiem, podobnie jak katalog telefonu. To tylko plik z listą liczb i nazwą obok nich. Każdy numer odnosi się do pliku w systemie plików (numer i-węzła), a nazwa to nazwa pliku.
Potrzebujesz miejsca na dysku, aby zapisać te dane, sposób ich przydzielania, powiększania i zmniejszania zależy od systemu plików.