Boş dizinlerin alanı ne kadar?
Windows ve NTFS dosya sisteminde imkansız olan '0 bayt' der.
Bir dizin gerçekten ne kadar alıyor? Dosya sistemine veya işletim sistemine bağlı mı?
Boş dizinlerin alanı ne kadar?
Windows ve NTFS dosya sisteminde imkansız olan '0 bayt' der.
Bir dizin gerçekten ne kadar alıyor? Dosya sistemine veya işletim sistemine bağlı mı?
Yanıtlar:
Teknik olarak Özellikler Penceresinin size gösterdiği, klasörün içeriği olup, boşsa herhangi bir diskte 0 bayt yer alır.
Sorunuz, klasör yapısının bir dosya sisteminde ne kadar yer kapladığı ile ilgilidir, ki bu açıkça ona bağlıdır. FAT32'de saklamanız gereken tek şey bazı bayraklar (gizli, arşivlenmiş) ve isim ve yol. NTFS'de de izinleri ve daha fazlasını saklamanız gerekir. Sonuçta, bu alan ihmal edilebilir.
Boş bir dizin yapısının kapladığı alan, ada ve klasör yoluna bağlıdır. Örnek olarak, tüm klasörleri bir kök sürücüye yerleştirdiğinizi varsayın (örneğin C :) ve 26 alfabetik karakterin tümünü kullanın; 1 milyar benzersiz adla log_26 (1.000.000.000) = yaklaşık 7 (6.3065) karakter uzunluğunda klasör adına sahip olabilirsiniz. Yani, 7 Bayt * 1.000.000.000 kabaca 7GB alana eşittir.
Bu yalnızca minimum yapı adlarının herhangi bir yapıda alması gereken miktara dayalıdır. Gösterileceği gibi, dosya sistemleri dosya yapısında dosya adı dışında çok daha fazla bilgi depolar.
Tüm sürücülerimde yaklaşık 1 milyon klasör ve dosyam olduğunu düşünüyorum, böylece değere gerçekte bile ulaşılamıyor. Unutmayın ki bu çok kaba bir tahmindir.
Şu anda en çok kullanılan dosya sistemleri (tartışmalı olarak) FAT (Dosya Ayırma Tablosu) ve NTFS (Yeni Teknoloji Dosya Sistemi) olarak düşünülebilir. Bildiğimiz gibi FAT , Windows 95'in FAT32 ile piyasaya sürüldüğü 1996'dan beri kullanılmaktadır. NFTS (Windows), HFS + (OSX) veya ext3 (Linux) gibi daha esnek dosya sistemleri ile değiştirilmesine rağmen, çoğu işletim sistemi tarafından iyi desteklendiği için hala elde taşınır cihazlarda veya bellek kartlarında veya flash sürücülerde yaygın olarak kullanılmaktadır. ve hepsinden önemlisi, basit.
Şimdi önemli olan için. FAT bölümündeki dosyalar ve dizinler, içinde hiçbir şey olmasa bile, dizin tablosu adı verilen bir bölgede depolanan bir ada, konuma, belirli özniteliklere vb. Sahiptir .
Dizin tablosu özel bir dosyadır (yani sadece işletim sistemi ve belirli uygulamalar bunu doğrudan erişebileceğiniz şekilde, düzenli kullanım gizlenir). Bir dizini (klasör olarak da bilinir) ve içinde depolanan herhangi bir dosya veya klasörün tabloda 32 Byte girişi vardır. Olarak dizin tablosu bir dosya, daha sonra bir veya daha fazla küme kaplar (bir disk içinde önceden belirlenmiş bir boyutta, yani kutu burada sadece tek bir dosya (veya birinin bir parçası) uyan).
Bu nedenle, modern bir sürücüdeki (> 512 MB) herhangi bir klasör veya dizin, tabloyu (kaynak) depolamak için en az 4 KB ek yüke sahiptir . Ancak bu, aynı klasörde 128 farklı dosya (4 * 1024 B / 32 B = 128) depolayabileceğiniz ve kayıtların saklanması yükünün hala eskisi gibi 4KB olduğu anlamına gelir.
İlk örnekte bindirme, bu milyar klasörlerin yaklaşık 7 GB hesapladığımdan ziyade 32 GB'lık bir ek yüke sahip olacağı anlamına gelir. Bu 32 GB yalnızca kısa adı (8 ASCII karakteri) değil, nitelikleri, bayrakları, erişimi, oluşturma ve değiştirme tarihlerini ve diğer eski nitelikleri de saklar.
Bütün bunları okumak varsayarsak, orada olabilecek bir soru olabilir: "Aslında tüm iyi ve güzel ama nasıl gibi uzun isimleri verilmektedir Wabbajack gibi bile hashy isimleri veya e4d909c290d0fb1ca068ffaddf22cbd0 , depolanan?"
Windows 95'teki Microsoft, kullanıcı deneyimini geliştirmek için bu özelliği eklemeye karar verdi. "Standartlara yakın" bir sistemi kırmamak için VFAT (Sanal FAT) adı verilen temiz bir geçici çözüm kullandılar. Esasen uzun dosya adını dosyaya sığdırmak için, gerçek dosya kaydından önce ek kayıtlar yazılmıştır (bazı özel öznitelikler önceki sistemler tarafından görülmeyecek şekilde). Uzun dosya adı sistemi maksimum 255 UTF-16 (Unicode) karakter (kaynak) (kaynak) uzunluğuna izin verir .
İlk örneği, her klasörde 9 karakter olacak şekilde değiştirirseniz, uzun adı depolamak için bir kayıt daha yazılması gerektiğinden, ek yük 32 GB'tan 64 GB'ye iki katına çıkacaktır.
NTFS hakkındaki Wikipedia makalesine göre , tüm izinler Ana Dosya Tablosunda depolanır. Alanı, burada gösterildiği gibi Disk Birleştiricisi aracılığıyla açıkça görülebilir .
Bir MFT kaydının bir klasör veya dosyadan kapladığı boyut burada açıklanmaktadır :
Dosya ve klasör kayıtları her biri 1 KB'dir ve öznitelikleri MFT'deki ayrılan alana yazılan MFT'de depolanır. Dosya özniteliklerinin yanı sıra, her dosya kaydı MFT'deki dosya kaydının konumu hakkında bilgi içerir.
Bir dosyanın öznitelikleri o dosya için MFT dosya kaydına sığabiliyorsa, bunlara yerleşik öznitelikler denir. Dosya adı ve zaman damgası gibi öznitelikler her zaman yerleşiktir. Bir dosya için bilgi miktarı MFT dosya kaydına sığmadığında , bazı dosya öznitelikleri yerleşik olmaz . Yerleşik olmayan özniteliklere bir veya daha fazla disk alanı kümesi atanır . Yerleşik olmayan özelliğin bir kısmı MFT'de kalır ve harici kümeleri işaret eder. NTFS, tüm öznitelik kayıtlarının konumunu açıklamak için Öznitelik Listesi özniteliğini oluşturur. NTFS Dosya Özniteliği Türleri tablosu, şu anda NTFS tarafından tanımlanan dosya özniteliklerini listeler.
Bu nedenle, NTFS'de, çok uzun argüman ve izin listeleri olmadıkça, klasörler en az 1 KB alan kaplar; bu noktada, MFT kaydı, boyutunda nasıl biçimlendirildiğine bağlı olarak ek bir küme kaplar, ancak bu yazıdaki 2GB'tan fazla Microsoft için 4KB kümeleri önerir.
Gerçek bir dünya örneği için, boş alanımı yeni kaydettim, sonra büyük bir dizin yapısı oluşturdum ve ne kadar alan kullanıldığını bulmak için yeni boş alanı çıkardım. Haftanın her günü için 0-6 arası dizinler, sonra günün saatleri için 0-23 arası dizinler, daha sonra saatin dakikaları için 0-59 arası dizinler oluşturdum. Toplamda 10.080 dizin. Disk kullanımım 6.926.336 bayt olarak değişti. Bu, dizin başına 687 bayta kadar çalışır. İlgilenmeniz durumunda, bu 1 TB'lık bir sürücünün% 0.0006'sına kadar çalışır (1 TB'ı 1024 ^ 4 olarak hesaplarsanız).