Jak mogę wyświetlić katalogi i ich rozmiary w wierszu polecenia?


15

Chciałbym zobaczyć rozmiary podfolderów w folderze, podobne do du -shpolecenia linux . Jak mogę wyświetlić katalogi i ich rozmiary w wierszu polecenia?


PS Uważam, że to darmowe małe oprogramowanie jest również przydatne windirstat.info
giorgio79


Dzięki za zwrócenie uwagi du -sh- używam cmder na Windowsie i działało dobrze.
jbaums

Odpowiedzi:


19

Wypróbuj narzędzie Wykorzystanie dysku z Sysinternals. W szczególności du -l 1powinien pokazywać rozmiar każdego podkatalogu bieżącego katalogu. Aby uzyskać więcej informacji, uruchom dubez ż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).


Wygląda dobrze. Poczekam chwilę, aby zobaczyć, czy istnieje natywny sposób na wykonanie tego w wierszu polecenia :)
giorgio79

@ giorgio79 Zobacz zaktualizowaną odpowiedź. Można to zrobić natywnie w wierszu polecenia, ale polecam użycie dysku lub użycie programu PowerShell.
Indrek

0

Nie mam doświadczenia z duLinuksem. Ale w systemie Windows używam dir /sdo wyświetlania wszystkich folderów i podfolderów wraz z rozmiarami plików.


1
/SPrzełącznik nie pokazuje rozmiarów katalogów, po prostu sprawia, że polecenie rekursywnie przejść przez wszystkie podkatalogi.
Indrek

3
Przyjrzyj się uważnie, pokazuje również rozmiar każdego folderu. Chociaż nie jest zbyt czytelny dla człowieka.
Ankit,

Ach tak, rozumiem, co masz na myśli - pod listą plików każdego podkatalogu pokazuje całkowity rozmiar wszystkich plików w tym katalogu. Jak mówisz, nie jest to jednak łatwe do odczytania, a rozmiary nie są wyświetlane rekurencyjnie.
Indrek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.