Na woluminie NTFS Win7 używam cwrsync, który poprawnie obsługuje --link-dest do tworzenia kopii zapasowych typu „migawka”. Więc mam:
z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...
Treść 2010-12-02 to w większości dowiązania twarde z powrotem do plików w katalogu 2010-11-28, ale jest kilka nowych lub zmienionych plików tylko w 02.12.2010. W systemie Linux narzędzie „du” powie mi rzeczywisty rozmiar każdego przyrostowego obrazu stanu. W systemie Windows zarówno explorer, jak i du under cygwin są oszukani przez hardlinks i pokazuje, że 2010-12-02 zajmuje nieco więcej miejsca niż 28.11.2010.
Czy istnieje narzędzie systemu Windows, które pokaże poprawne zajęte miejsce?
Odpowiedzi:
Spróbuj użyć Sysinternals Disk Usage (inaczej znany jako
du
), w szczególności użycie flag-u
i-v
będzie liczyć tylko unikalne wystąpienia i pokaże użycie każdego folderu w miarę jego działania.O ile wiem, system plików nie pokazuje różnicy między oryginalnym plikiem a twardym dowiązaniem (to jest właśnie sens twardego dowiązania), więc nie można dyskontować ich na podstawie folderu po folderze, ale trzeba to zrobić porównawczo.
Aby przetestować, utworzyłem losowy folder z 6 plikami do. Sklonowałam całą rzecz. Następnie utworzył kilka twardych i miękkich linków w pierwszym folderze, aby odwoływać się do innych plików w pierwszym folderze, a także niektórych w drugim.
Uruchamianie
du -u -v testFld
wyników w (zauważ, że wartości obok folderów są w KiB):Uruchamianie
du -u -v testFld\a
wyników w:Uruchamianie
du -u -v testFld\b
wyników w:Zauważ niedopasowanie?
Dowiązania symboliczne w A, które odnoszą się do plików w B, są liczone tylko do A podczas „pełnego” uruchomienia, a B zwraca tylko 54 (mimo że pliki były pierwotnie w B i zostały połączone na stałe z A). Kiedy mierzysz B osobno (lub, jeśli nie użyjesz
-u
unikalnej flagi), policzymy jego „pełną” miarę 74.źródło
-u
flagi. Masz „full” środek jeśli korzystać z-u
flagą. Bez niego zlicza tylko 1 instancję dowolnego pliku połączonego na stałe. Mówi tak w dokumentacji: docs.microsoft.com/en-gb/sysinternals/downloads/du, a testowanie to weryfikuje.Opcją może być PowerShell 5. Jest dostępny dla systemu Windows 7, ale przetestowałem to tylko na serwerze 2012 R2 z wersją zapoznawczą z kwietnia 2015 r
Dostawca systemu plików w programie PowerShell 5 ma dwie nowe właściwości
LinkType
iTarget
:to zwraca:
Teraz mogę wyświetlać tylko wszystkie pliki w systemie 32, które nie są dowiązaniami stałymi:
to zwraca:
możesz to porównać ze wszystkimi plikami:
Tak więc ponad 13 000 plików o pojemności 2 GB + to twarde linki
źródło
TreeSize Professional (~ 55 USD, 30-dniowa wersja próbna) twierdzi, że wyróżnia miejsce na dysku twardym w systemie NTFS. Szybka próba zdaje się to potwierdzać.
Obsługa twardego łącza nie jest włączana od razu: przejdź do Narzędzia> Opcje> Skanuj , ponownie skanuj, a następnie użyj
Ctrl-1
i,Ctrl-2
aby przełączać się między rozmiarem a przydzielonym miejscem. Przydzielone to rzeczywiste zajęte miejsce, podczas gdy Rozmiar to statystyki zwykle zgłaszane przez inne programy.Włączenie obsługi hardlink wiąże się z obniżeniem wydajności (a także dowiązań symbolicznych i montowań, jeśli tego chcesz). Paleta kolorów jest jak na mój gust jaskrawa, ale wydaje się, że jest odpowiednikiem kursu w tym gatunku. Zachowaj także ostrożność podczas klikania w obszarze wykresu pudełkowego - łatwo jest przypadkowo przenieść folder z błędnym przeciągnięciem i upuszczeniem, gdy chcesz go tylko rozwinąć.
źródło
Myślę, że pewne fakty muszą zostać tu przytoczone.
System Windows nie może „wykryć” dowiązań twardych, ponieważ każdy plik jest tak naprawdę dowiązaniem twardym do pęczka bajtów na dysku.
Narzędzie du wykrywa duplikaty, ale jest to również fałsz, ponieważ jeśli folder A zawiera pliki, a B zawiera tylko dowiązania twarde do plików w A, wówczas du z A i du z B zwrócą tę samą odpowiedź - rozmiar plików pochodzących pierwotnie z A, ale te pliki są teraz również w B.
Jest to w rzeczywistości poprawne, ponieważ na przykład, jeśli usunąłeś A, to jego pliki nie zostaną usunięte na dysku, ponieważ nadal są do nich odniesienia B. W przypadku twardych linków, który plik jest źródłem, a który twardym linkiem jest dość arbitralne i bez znaczenia.
Produkty takie jak du wyświetlą katalog przy jednoczesnym dyskontowaniu duplikatów. Działa to tylko wtedy, gdy wszystkie pliki i twarde łącza znajdują się w jednym katalogu. Robi to wiele produktów z listą folderów.
Wniosek: w przypadku twardych linków pytanie „rzeczywisty rozmiar używany w katalogu NTFS” nie ma znaczenia.
źródło
Robię również badania dotyczące tego pytania. Oto wyniki, które odkryłem.
Rozmiar folderu zawierającego pliki dowiązane w systemie plików NTFS można rozpatrywać w trzech różnych znaczeniach:
Liczba 2 jest pokazana przez TreeSize Professional, w zakładce Szczegóły, kolumna Przydzielone, jeśli włączona jest opcja „Śledź twarde łącza NTFS”.
Oto przykład folderu winsxs (7,5 GB w przeciwieństwie do 10):
Otrzymanie wartości numer 3 jest nadal dla mnie pytaniem. Chociaż udało mi się uzyskać niższą granicę, używając Total Commander z wtyczką NL_Info. Mam rozmiar zajmowany przez pliki, które mają tylko jeden hardlink (unikalne pliki). Dla tego przykładu było to około 5 Gb.
Więc próbuję rozwinąć odpowiedź harrymca lub powiedzieć innymi słowy.
źródło
Możesz użyć ln.exe, aby pokazać „prawdziwy rozmiar” drzewa katalogów:
Wykryje tylko twarde linki poniżej tego folderu początkowego.
źródło