Chciałbym zobaczyć rozmiary podfolderów w folderze, podobne do du -sh
polecenia linux . Jak mogę wyświetlić katalogi i ich rozmiary w wierszu polecenia?
Chciałbym zobaczyć rozmiary podfolderów w folderze, podobne do du -sh
polecenia linux . Jak mogę wyświetlić katalogi i ich rozmiary w wierszu polecenia?
Odpowiedzi:
Wypróbuj narzędzie Wykorzystanie dysku z Sysinternals. W szczególności du -l 1
powinien pokazywać rozmiar każdego podkatalogu bieżącego katalogu. Aby uzyskać więcej informacji, uruchom du
bez żadnych parametrów.
Jeśli PowerShell jest OK, spróbuj wykonać następujące czynności:
Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
$_.Name + ": " + (
Get-ChildItem $_ -Recurse |
Measure-Object Length -Sum -ErrorAction SilentlyContinue
).Sum
}
Rozmiary są w bajtach. Aby sformatować je w większej jednostce, takiej jak MB, spróbuj wykonać następujące czynności (skondensowane do jednej linii):
Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }
Aby uzyskać więcej informacji, zobacz ten artykuł w witrynie Technet .
Jeśli chcesz bardziej elastycznego formatowania rozmiarów (wybierając KB / MB / GB / etc na podstawie rzeczywistego rozmiaru), zobacz to pytanie i odpowiedzi .
Nie sądzę, aby można było robić to, co chcesz, za pomocą zwykłego wiersza poleceń i tylko kilku prostych poleceń. Zobacz ten skrypt jako przykład (nie zamierzam go tutaj kopiować, ponieważ nie sądzę, aby warto stosować to podejście, chyba że PowerShell nie jest dostępny, a narzędzia innych firm są niedopuszczalne).
Nie mam doświadczenia z du
Linuksem. Ale w systemie Windows używam dir /s
do wyświetlania wszystkich folderów i podfolderów wraz z rozmiarami plików.
/S
Przełącznik nie pokazuje rozmiarów katalogów, po prostu sprawia, że polecenie rekursywnie przejść przez wszystkie podkatalogi.