首页/系统/Windows 运维速查/空间分析:找出哪个目录在吃盘
磁盘与文件43 条

空间分析:找出哪个目录在吃盘

用 Get-ChildItem 递归统计并按目录汇总大小:定位大目录大文件;百万级文件目录建议用 WizTree/TreeSize 提速。

Windows 运维速查系统更新于 2026-10-13

空间分析怎么做

磁盘快满时,先要回答的问题是「空间到底被什么吃掉了」。思路很简单:递归枚举文件,按目录汇总大小,再降序排列取头部。用递归枚举的命令行方式足够应付中小规模目录,优点是全程只读、不需要额外软件;缺点是文件数量上到百万级时枚举本身就很慢,而且会对机械盘造成持续读写压力,这时改用直读文件系统索引的专用工具更合适。

基本信息

适用平台Windows PowerShell 5.1 与 PowerShell 7 及以上
基本思路递归枚举文件,按属性的长度求和,再降序取头部
关键命令递归列目录、度量求和、排序取前若干条
统计口径长度属性是逻辑大小,与磁盘实际占用可能不同
加速手段直读索引的专用工具,或先缩小扫描范围
影响全程只读,不修改数据,但会产生磁盘读取压力

典型使用场景

  • 定位哪个一级子目录占用最多空间,确定清理方向
  • 找出体积异常的单个文件,例如意外的日志或转储文件
  • 对比清理前后占用变化,验证清理效果
  • 巡检多个业务目录,找出增长过快的目录
  • 排查某个分区空间异常:排除挂载点与符号链接造成的重复统计
  • 为归档或迁移做容量评估,估算需要多少目标空间

常用示例

常用示例
# 一级子目录大小排行(GB)
Get-ChildItem D:\Data -Directory | ForEach-Object {
  $s = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum
  [pscustomobject]@{ 目录 = $_.Name; GB = [math]::Round($s / 1GB, 2) }
} | Sort-Object GB -Descending | Select-Object -First 10
# 全盘最大的 20 个文件
Get-ChildItem D:\ -Recurse -File -ErrorAction SilentlyContinue | Sort-Object Length -Descending | Select-Object -First 20 FullName, @{n='GB';e={[math]::Round($_.Length/1GB,2)}}
# 按扩展名汇总占用
Get-ChildItem D:\Logs -Recurse -File -ErrorAction SilentlyContinue | Group-Object Extension | Select-Object Name, @{n='GB';e={[math]::Round(($_.Group | Measure-Object Length -Sum).Sum/1GB,2)}} | Sort-Object GB -Descending

统计口径与替代工具

项说明注意点
长度属性文件的逻辑字节数与磁盘实际占用可能不一致
权限错误无权限目录会被跳过加容错参数会让统计值偏小
符号链接与挂载点会被递归进去可能造成重复计数,需要排除
脚本枚举通用但较慢适合中小规模目录
索引类工具直读文件系统元数据百万级文件目录下快很多
扫描时机避开业务高峰全盘扫描会带来持续磁盘压力
扫描本身只读,不会改动数据,但会大量读取目录与元数据。在机械盘或生产库所在卷上全盘扫描前,先确认对业务 IO 的影响,必要时安排到低峰时段。
统计结果偏小是最常见的误差来源:权限不足被跳过的目录、被排除的隐藏项、以及挂载点重复计数都会影响数字。做决策前先确认这几点的处理方式。

易错点

  • 把逻辑大小当成磁盘占用:稀疏文件、压缩与去重会让两者差异明显,判断容量要以实际占用为准
  • 忽略权限错误:被跳过的目录不计入统计,得到的排行可能漏掉真正的大户
  • 没排除挂载点与符号链接:同一批文件被计两次,结果虚高
  • 在业务高峰全盘扫描:持续读取会拖慢生产系统,应先缩小范围或改期执行
  • 只统计不设阈值:每次都全量枚举成本高,可先按目录或扩展名缩小范围再统计

数据来源与参考

  • Microsoft Learn:Get-ChildItem
  • Microsoft Learn:Measure-Object

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌