Yanıtlar:
Bu, dizindeki meta bilgisini (yani bu dizine ait olan dosyaların tablosu) depolamak için kullanılan diskteki alanın boyutudur. Yani, 1024 ise, bunun için diskteki 1024 baytın (her zaman tam bloklar ayırması) bu amaç için kullanıldığı anlamına gelir.
Basılı "dizinin boyutu" ls -l
(herhangi bir dosya türünde olduğu gibi) stat()
çağrı tarafından bildirilen değerdir statbuf.st_size
.
Bunun st_size
dizinler için anlamı, tamamen dosya sistemi türüne bağlıdır. Dosya sistemi türünü bilmediğiniz ve kavramlarını anlamadığınız sürece, içindeki değerden hiçbir şey çıkaramazsınız st_size
.
Şu anda genellikle adlandırılan tarihi UNIX dosya sisteminde v7-fs
, dizinler, 16 bit inode numarası ve 14 bayt dosya adı içeren 16 bayt girişleri tekrar edildi. Bir dizinin "boyutu" read(2)
işlem açısından anlamlıdır ve her zaman olduğu gibi büyür veya kalır. .
Ve ..
girişleri elle akım ve bir seviye yukarıda dizine karşı onları sert bağlama tarafından oluşturulur. Aklı başında bir boş kızlık dizininin bağlantı sayısı 2'dir.
1989'dan beri (SVr4) çağrıldığı BSD-4.2 dosya sisteminde ufs
, dizinler kararlı olmaları için verilmeyen bir format kullanan bir dizi değişken uzunluklu kayıtlardır, bu nedenle kullanıcı alanı komutlarının bu formatı okumasına izin verilmez. Bildirilen "boyut", v7-fs'deki gibi bayt cinsinden boyuttur; boyut genellikle olduğu gibi büyür veya kalır, ancak dosya sisteminin yeni sürümleri bazı koşullar altında boyutu küçültebilir - ancak bunu her zaman beklediğiniz zaman değil. Boş bir dizin için bildirilen bağlantı sayısı, olduğu gibi 2'dir v7-fs
.
Gelen WOFS
dizinleri hep "boyutu" 0 rapor ve kullanma okunabilir içeriğin türünü asla, dosya sistemi, ben tasarlanmış ve 1988 yazında Mayıs 1991 tarihleri arasında uygulanan read(2)
çağrıyı. Bunun nedeni WOFS
, ilk Yere Yazma dosya sistemidir ve WOFS
dosyalarda dizini bildirmek yerine bulundukları dizini bildirdikleri içindir. Bir WOFS
dizini kullanarak okursanız readdir()
, yalnızca amaçlanan girişler için veri alırsınız, ancak hiçbir zaman .
ve ..
. Boş bir dizinin bağlantı sayısı WOFS
1'dir ve tüm davranış tamamen POSIX uyumludur.
Bu ZFS
, WOFS
makaleleri okuduktan sonra uygulandı . ZFS
yazılan bir dosya sistemidir ve yazarları kavramları kopyaladıklarını inkar etmez WOFS
. ZFS üzerinde Dizinler rapor number of directory entries
in st_size
, yani bildirilen "boyutu" dizin verilerinden işgal disk alanı ile ilgili olarak hiçbir gerçek anlamı yoktur. Bir ZFS dizininde giriş .
ve ..
giriş yoktur , ancak ararsanız readdir()
, bu girişlere numara verilir ve ilk iki işlem için döndürülür. ZFS, listedeki sabit bağlantı dizinlerini desteklemeyen tek FS'dir, ancak dizinler için bildirilen bağlantı sayısı her zaman 2'dir. ZFS'deki bu iki düzensizlik, POSIX tarihi olmayan programlarda karışıklığı azaltmak için uygulanır.
ZFS benzer şekilde, WAFL kopyalar bazı tümünü değil fikirler WOFS
. Netapp's WAFL
, WOFS
makalenin yayınlanmasından 3 yıl sonra yazıldı , WAFL kopyalanıp kopyalandı, ancak WAFL, dizinin içeriği olduğu varsayımı altında "gerçek dizin boyutu" olabilecek "boyut" değerlerini rapor ediyor gibi görünüyor.
Bir dizin kendisi ve içeriği hakkında meta-veri için en az 4096 bayt (en az) ayırır.
Ayrıca, 4096 bayt, ext2 / ext3 / ext4 dosya sistemi için varsayılan tahsisat birimidir (blok) ve bunun için bir dizin daha küçük olamaz.
Farklı dosya sistemlerinde, dosya sisteminin varsayılan blok boyutundan dolayı farklı varsayılan boyutlarda dizinler bulabilirsiniz.
Dizin boyutları dolduruldukça dinamik olarak da büyüyebilir, ancak bir kez doldurulduğunda meta veriler için ayrılan alan dizini kaldırmadan yeniden tahsis edilemez.
Rehber, telefon rehberi gibi sadece bir dizindir. Bu sadece sayılar listesi ve yanlarında bir isim bulunan bir dosyadır. Her sayı dosya sistemindeki bir dosyaya (inode numarası) atıfta bulunur ve adı dosya adıdır.
Bu verileri kaydetmek için disk alanına ihtiyacınız vardır, nasıl tahsis edildiğini ve büyütüldüğünü ve küçültüldüğünü dosya sistemine bağlıdır.