Auf einem Win7 NTFS-Volume verwende ich cwrsync, das --link-dest korrekt unterstützt, um Backups vom Typ "Snapshot" zu erstellen. Also habe ich:
z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...
Der Inhalt des 02.12.2010 besteht hauptsächlich aus Hardlinks zu Dateien im Verzeichnis 28.11.2010. Es gibt jedoch nur wenige neue oder geänderte Dateien im 02.12.2010. Unter Linux gibt mir das Dienstprogramm "du" die tatsächliche Größe jedes inkrementellen Snapshots an. Unter Windows werden explorer und du under cygwin beide von Hardlinks getäuscht und zeigen, dass der 02.12.2010 etwas mehr Platz einnimmt als der 28.11.2010.
Gibt es ein Windows-Dienstprogramm, das den aktuell verwendeten Speicherplatz anzeigt?
Antworten:
Versuchen Sie, Sysinternals Disk Usage (ansonsten bekannt als
du
) zu verwenden. Wenn Sie insbesondere die Flags-u
und verwenden-v
, werden nur eindeutige Vorkommen gezählt und die Verwendung jedes Ordners im Laufe der Zeit angezeigt.Soweit ich weiß, zeigt das Dateisystem nicht den Unterschied zwischen der Originaldatei und einem festen Link (das ist wirklich der Punkt eines festen Links), so dass Sie sie nicht ordnerweise rabattieren können, sondern müssen dies vergleichsweise tun.
Zum Testen habe ich einen zufälligen Ordner mit 6 Dateien angelegt. Das Ganze geklont. Erstellen Sie dann mehrere Hard- und Softlinks im ersten Ordner, um auf andere Dateien im ersten und auch im zweiten Ordner zu verweisen.
Laufende
du -u -v testFld
Ergebnisse in (beachten Sie, dass die Werte neben den Ordnern in KB angegeben sind):Laufende
du -u -v testFld\a
Ergebnisse in:Laufende
du -u -v testFld\b
Ergebnisse in:Beachten Sie die Nichtübereinstimmung?
Die Symlinks in A, die auf Dateien in B verweisen, werden nur während des "vollständigen" Laufs gegen A gezählt, und B gibt nur 54 zurück (obwohl die Dateien ursprünglich in B waren und von A aus fest verknüpft wurden). Wenn Sie B separat messen (oder wenn Sie das
-u
eindeutige Flag nicht verwenden ), zählt es sein "volles" Maß von 74.quelle
-u
Flagge. Sie erhalten die „voll“ Maßnahme , wenn Sie verwenden die-u
Flagge. Ohne diese Option wird nur eine Instanz einer fest verknüpften Datei gezählt. Sagt dies in den Dokumenten: docs.microsoft.com/en-gb/sysinternals/downloads/du und das Testen bestätigt es.PowerShell 5 ist möglicherweise eine Option. Es ist für Windows 7 verfügbar, aber ich habe es nur auf einem Server 2012 R2 mit der Vorschau vom April 2015 getestet
Der Dateisystemanbieter in PowerShell 5 verfügt über zwei neue Eigenschaften
LinkType
undTarget
:das ergibt:
Daher kann ich jetzt nur alle Dateien in system32 anzeigen, die keine Hardlinks sind:
das ergibt:
Sie können das mit allen Dateien vergleichen:
Über 13.000 Dateien mit mehr als 2 GB sind Hardlinks
quelle
TreeSize Professional (~ $ 55, 30 Tage Testversion) gibt an, NTFS-Festplattenspeicherplatz zu unterscheiden. Ein schneller Versuch scheint dies zu bestätigen.
Die Hardlink-Unterstützung ist nicht standardmäßig aktiviert: Gehen Sie zu Extras> Optionen> Scannen, scannen Sie erneut und verwenden Sie dann
Ctrl-1
undCtrl-2
, um zwischen Größe und zugewiesenem Speicherplatz zu wechseln . Allocated ist der tatsächlich belegte Speicherplatz, während Size die Statistik ist, die normalerweise von anderen Programmen gemeldet wird.Es gibt eine Leistungsstrafe für das Aktivieren der Hardlink-Unterstützung (und Symlinks und Mounts auch, wenn Sie das auch wollen). Die Farbpalette ist für meinen Geschmack grell, aber das scheint für dieses Genre selbstverständlich zu sein. Seien Sie auch vorsichtig, wenn Sie im Box-Chart-Bereich herumklicken - es ist leicht, versehentlich einen Ordner mit einem fehlerhaften Drag-and-Drop zu verschieben, wenn Sie ihn nur erweitern wollten.
quelle
Ich denke, einige Fakten müssen hier richtig gestellt werden.
Windows kann Hardlinks nicht "erkennen", da jede Datei tatsächlich ein Hardlink zu einer Reihe von Bytes auf der Festplatte ist.
Das du-Tool erkennt Duplikate, aber das ist auch falsch, da, wenn Ordner A Dateien enthält und B nur Hardlinks zu den Dateien in A enthält, du von A und du von B dieselbe Antwort zurückgeben - die Größe der ursprünglich kommenden Dateien von A, aber diese Dateien sind jetzt auch in B.
Dies ist tatsächlich richtig, denn wenn Sie beispielsweise A gelöscht haben, werden seine Dateien nicht auf der Festplatte gelöscht, da sie immer noch von B referenziert werden. Bei Hardlinks ist welche Datei die Quelle und welche die Hardlink ganz willkürlich und bedeutungslos.
Produkte wie du listen ein Verzeichnis auf, während doppelte Einträge abgezinst werden. Dies funktioniert nur, wenn alle Dateien und Hardlinks in einem Verzeichnis enthalten sind. Viele Produkte mit Ordnerlisten tun dies.
Fazit: Bei Hardlinks ist die Frage nach der "tatsächlichen Größe eines NTFS-Verzeichnisses" ohne Bedeutung.
quelle
Ich recherchiere auch über diese Frage. Hier sind die Ergebnisse, die ich entdeckt habe.
Die Ordnergröße, die fest verknüpfte Dateien in NTFS enthält, kann in drei verschiedenen Bedeutungen betrachtet werden:
Die Nummer 2 wird von TreeSize Professional auf der Registerkarte "Details" in der Spalte "Zugewiesen" angezeigt, wenn die Option "NTFS-Hardlinks verfolgen" aktiviert ist.
Hier ist ein Beispiel für den Ordner "winsxs" (7,5 GB im Gegensatz zu 10):
Den Wert 3 zu erhalten, ist für mich immer noch eine Frage. Obwohl ich mit Total Commander und dem NL_Info-Plugin eine Untergrenze erreichen konnte. Was ich habe, ist eine Größe, die von Dateien belegt wird, die nur einen Hardlink haben (eindeutige Dateien). Für ein gegebenes Beispiel waren es ungefähr 5 GB.
Also versuchen, Harrymc Antwort zu erweitern oder mit anderen Worten zu sagen.
quelle
Sie können ln.exe verwenden , um die "wahre Größe" eines Verzeichnisbaums anzuzeigen :
Es werden nur Hardlinks unterhalb dieses Startordners erkannt.
quelle