如何在命令提示符下列出目录及其大小?


Answers:


19

尝试从Sysinternals中使用磁盘使用情况”实用程序。具体来说,du -l 1应显示当前目录中每个子目录的大小。有关更多信息,请在du不使用任何参数的情况下运行。


如果PowerShell正常,请尝试以下操作:

Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
  $_.Name + ": " + (
    Get-ChildItem $_ -Recurse |
    Measure-Object Length -Sum -ErrorAction SilentlyContinue
  ).Sum
}

大小以字节为单位。要将它们格式化为更大的单位(例如MB),请尝试以下操作(压缩为一行):

Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }

有关更多信息,请参见Technet上的本文

如果您要更灵活地设置大小格式(根据实际大小选择kB / MB / GB / etc),请参阅此问题及其答案


我认为仅通过几个简单的命令就无法从常规命令行执行您想要的操作。请以该脚本为例(不要在这里复制它,因为我认为这种方法不值得追求,除非无法使用PowerShell并且不接受第三方实用程序)。


看起来不错。将稍等一下,看看是否在命令提示符下有本机的方法:)
giorgio79 2012年

@ giorgio79查看最新答案。它可以在命令提示符中本地执行,但我建议使用“磁盘使用情况”或使用PowerShell。
Indrek 2012年

0

我没有使用duLinux的经验。但是在Windows中,我dir /s用来列出所有文件夹和子文件夹以及文件大小。


1
/S开关不显示目录的大小,它只是使命令递归遍历所有的子目录。
Indrek

3
仔细查看,它还会显示每个文件夹的大小。虽然其可读性不高。
Ankit 2012年

是的,我明白您的意思-在每个子目录的文件列表下,它显示该目录中所有文件的总大小。就像您说的那样,它并不是很容易阅读,并且不会递归显示大小。
Indrek 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.