Mi piacerebbe vedere le dimensioni delle sottocartelle in una cartella, simile a Linux du -sh comando. Come posso elencare le directory e le loro dimensioni nel prompt dei comandi?
Mi piacerebbe vedere le dimensioni delle sottocartelle in una cartella, simile a Linux du -sh comando. Come posso elencare le directory e le loro dimensioni nel prompt dei comandi?
Risposte:
Prova il Uso del disco utilità da Sysinternals. In particolare, du -l 1 dovrebbe mostrare la dimensione di ciascuna sottodirectory della directory corrente. Per ulteriori informazioni, eseguire du senza parametri.
Se PowerShell è OK, quindi provare quanto segue:
Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
$_.Name + ": " + (
Get-ChildItem $_ -Recurse |
Measure-Object Length -Sum -ErrorAction SilentlyContinue
).Sum
}
Le dimensioni sono in byte. Per formattarli in un'unità più grande come MB, provare quanto segue (condensato su una riga):
Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }
Per ulteriori informazioni, vedere questo articolo su Technet .
Se vuoi una formattazione più flessibile delle dimensioni (scegliendo kB / MB / GB / etc in base alle dimensioni effettive), vedi questa domanda e le sue risposte .
Non penso sia possibile fare ciò che vuoi dalla normale riga di comando e con pochi semplici comandi. Vedere questo script come esempio (non lo copierò qui perché non credo che valga la pena perseguire questo approccio, a meno che PowerShell non sia disponibile e le utilità di terze parti non siano accettabili).
Non ho esperienza con du in Linux. Ma in Windows io uso dir /s per elencare tutte le cartelle e sottocartelle insieme alle dimensioni dei file.
/S switch non mostra le dimensioni delle directory, semplicemente fa in modo che il comando ricorsivi in modo ricorsivo attraverso tutte le sottodirectory.