Birçok sabit bağlantıyla bir NTFS dizininde kullanılan gerçek boyutu nasıl kontrol edebilirim?


14

Win7 NTFS biriminde, "snapshot" türü yedekler oluşturmak için --link-dest'i doğru şekilde destekleyen cwrsync kullanıyorum. Bende var:

z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...

2010-12-02 içeriği çoğunlukla 2010-11-28 dizinindeki dosyalara geri döner, ancak yalnızca 2010-12-02'de birkaç yeni veya değiştirilmiş dosya vardır. Linux'ta, 'du' yardımcı programı bana her artımlı anlık görüntü tarafından alınan gerçek boyutu söyleyecektir. Windows'da, hem explorer hem de cygwin altındaki du, hardlinklerle kandırılıyor ve 2010-12-02'nin 2010-11-28'den biraz daha fazla yer kapladığını gösteriyor.

Acutally kullanılan doğru alanı gösterecek bir Windows yardımcı programı var mı?



bu normal disk kullanımı için faktör sorusu ve cevapları gibi görünüyor: Windows'ta dosya sistemi kullanımını nasıl görselleştirebilirim?
matt wilkie

Yanıtlar:


11

Sysinternals Disk Kullanımını kullanmayı deneyin (aksi halde bilinirdu ), özellikle -uve -vbayraklarını kullanmak yalnızca benzersiz oluşumları sayar ve her klasörün ilerledikçe kullanımını gösterir.

Bildiğim kadarıyla dosya sistemi orijinal dosya ile sabit bir bağlantı arasındaki farkı göstermiyor (bu gerçekten bir sabit bağlantının noktasıdır), bu yüzden onları klasör bazında indiremezsiniz, ancak bunu karşılaştırmalı yapmalıyız.

Test etmek için içine 6 dosya ile rastgele bir klasör oluşturdum. Her şeyi klonladı. Daha sonra, ilk klasördeki diğer dosyalara ve ikinci klasördeki bazı dosyalara başvurmak için ilk klasörün içinde birkaç sert ve yumuşak bağlantı oluşturdu.

du -u -v testFldSonuçları çalıştırıyor (klasörlerin yanındaki değerlerin KiB'de olduğunu unutmayın):

       104  <path>\testFld\A
        54  <path>\testFld\B
       149  <path>\testFld

Totals:
Files:        12
Directories:  2
Size:         162,794 bytes
Size on disk: 162,794 bytes

du -u -v testFld\aSonuçların çalıştırılması :

104  <path>\testFld\a
...

du -u -v testFld\bSonuçların çalıştırılması :

74   <path>\testFld\b
...

Uyuşmazlığı fark ettiniz mi?
A'daki B'deki dosyalara gönderme yapan semboller yalnızca "tam" çalışma sırasında A'ya sayılır ve B yalnızca 54 döndürür (dosyalar başlangıçta B'de ve A'dan sabit bağlantılı olsa bile). B'yi ayrı olarak ölçtüğünüzde (veya -ubenzersiz bayrağı kullanmazsanız ) 74'ün "tam" ölçüsünü sayar.


1
Teşekkürler, sadece sysinternals du hakkında bilmiyordum, sadece cygwin olanı. Görünüşe göre cygwin du da istediğimi yapıyor, sadece lütuf başlamadan önce denemek düşünmüyordu.
kbyrd

Bu cevap -ubayrağın işlevini karıştırmaktadır . Sen get "tam" ölçü eğer kullanmak-u bayrağı. Bu olmadan, herhangi bir sabit bağlantılı dosyanın 1 örneğini sayar. Belgelerde şunu söylüyor : docs.microsoft.com/en-gb/sysinternals/downloads/du ve test bunu doğrular.
martixy

2

PowerShell 5 bir seçenek olabilir. Windows 7 için kullanılabilir, ancak bunu sadece Nisan 2015 Önizleme ile bir Server 2012 R2'de test ettim

PowerShell 5'de dosya sistemi sağlayıcısı iki yeni özelliğe sahiptir LinkTypeve Target:

ls taskmgr.exe | fl LinkType,Target

bu döndürür:

LinkType : HardLink
Target   : C:\Windows\WinSxS\amd64_microsoft-windows-advancedtaskmanager_..._6.3.9600.17..2\Taskmgr.exe

Şimdi sadece system32'de sabit olmayan tüm dosyaları gösterebilirim:

cd $env:SystemRoot\System32
ls -Recurse -File -force -ErrorAction SilentlyContinue | ? LinkType -ne HardLink | Measure-Object -Property Length -Sum

bu döndürür:

Count    : 844
Sum      : 502,486,831

bunu tüm dosyalarla karşılaştırabilirsiniz:

ls -Recurse -File -force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum

Count    : 14092
Sum      : 2,538,256,262

Yani 2GB + ile 13.000'den fazla dosya basılır


1

TreeSize Professional (~ 55 $, 30 günlük deneme sürümü) NTFS sabit bağlantı disk alanını ayırdığını iddia ediyor. Hızlı bir deneme bunu destekliyor gibi görünüyor.

Hardlink destek kutusunun dışarı açık değil: go için Araçlar> Seçenekler> Tara , yeniden tarama, daha sonra kullanmak Ctrl-1ve Ctrl-2arasındaki anahtara Boyutu ve Ayrılan alan. Ayrılan gerçek alan kullanılırken Boyut normalde diğer programlar tarafından bildirilen istatistiktir.

Sabit bağlantı desteğini açmak için bir performans cezası vardır (ve bunu isterseniz sembol bağlantıları ve bağlar da). Renk paleti benim zevkime hitap ediyor, ancak bu türdeki kurs için eşit görünüyor. Ayrıca kutu grafik alanında tıklarken dikkatli olun - yanlışlıkla genişletmek istediğinizde yanlışlıkla sürükleyip bırakma özelliğine sahip bir klasörü taşımak kolaydır.


1

Bence bazı gerçeklerin burada belirlenmesi gerekiyor.

Windows sabit bağlantıları "algılayamaz", çünkü her dosya aslında diskteki bir dizi bayta bir bağlantıdır.

Du aracı çiftleri algılar, ancak A dosyalarını içeren ve B yalnızca A'da dosyalara sabit bağları içeren klasör, sonra A du beri bu çok yanlıştır ve aynı cevabı dönecektir B du - dosyalarının boyutu başlangıçta geliyor A, ancak bu dosyalar şimdi B'de.

Bu gerçekten doğrudur, çünkü örneğin A'yı silerseniz, dosyaları hala B tarafından referans alındığı için diskte silinmez. Sabit bağlantılarda, hangi dosya kaynaktır ve hangisi sabit bağlantıdır oldukça keyfi ve anlamsız.

Du gibi ürünler, kopyaları indirirken bir dizini listeleyecektir. Bu, yalnızca tüm dosyalar ve sabit bağlantılar tek bir dizinde bulunuyorsa çalışır. Birçok klasör listesi ürünü bunu yapar.

Sonuç: Sabit bağlantılarda, "NTFS dizininde kullanılan gerçek boyut" sorusu anlamsızdır.


1

Ben de bu soru hakkında biraz araştırma yapıyorum. İşte keşfettiğim sonuçlar.

NTFS'de sabit bağlantılı dosyalar içeren klasör boyutu üç farklı anlama gelebilir:

  1. Tüm sabit bağlantılı dosyaların boyutları dahil boyut (WE tarafından gösterilir).
  2. Yalnızca geçerli klasör açısından benzersiz dosyaların boyutu.
  3. Yalnızca tüm disk açısından benzersiz dosyaların boyutu.

"NTFS sabit bağlantılarını izle" seçeneği etkinleştirilmişse, Ayrıntılar sekmesi, Ayrılmış sütununda Ayrıntılar sekmesinde TreeSize Professional tarafından gösterilen sayıdır.

İşte winsxs klasörü için exaple (10 için 7.5 Gb):

görüntü

3 numaralı değeri almak benim için hala bir soru. NL_Info eklentisi ile Total Commander kullanarak bir alt sınır elde edebildi rağmen. Ne var onle bir sabit bağlantı (benzersiz dosyalar) olan dosyaları tarafından işgal bir boyutudur. Belirli bir örnek için yaklaşık 5 Gb idi.

Yani harrymc cevabı genişletmeye çalışmak veya başka bir deyişle söylemek.


0

Bir dizin ağacının "gerçek boyutunu" göstermek için ln.exe'yi kullanabilirsiniz :

ln.exe --truesize z:\backups\.

Yalnızca bu başlangıç ​​klasörünün altındaki sabit bağlantıları algılar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.