Linux/macOS用df和mount查/等挂载点及剩余空间,Windows用PowerShell的Get-PSDrive或wmic查C:等盘符;根目录指独立挂载的顶级路径(如/、C:),非子目录;剩余空间需排除虚拟文件系统和隐藏恢复分区。

获取操作系统当前的根目录列表和磁盘剩余空间总量,需区分不同系统——Linux/macOS 用 df 和 mount 命令,Windows 则依赖 wmic 或 PowerShell。核心是识别“根目录”(通常指挂载点为 / 或 C: 的文件系统)及其对应磁盘的可用空间。
Linux/macOS:列出根挂载点并查剩余空间
多数 Linux 发行版中,真正的“根目录”只有一个(即挂载在 / 的文件系统),但部分系统可能将 /boot、/home 等单独分区挂载,这些也属于逻辑上的“根级目录”。可统一用以下命令查看:
-
df -h /—— 显示根(/)所在文件系统的总容量、已用、可用空间(人类可读格式) -
df -h | grep '^[^[:space:]]+.* /$'—— 筛选出挂载点为/的行(排除子挂载) -
mount | awk '$3 == "/" {print $1, $5}'—— 输出根分区设备名及文件系统类型(如/dev/sda2 ext4) - 若需所有顶层挂载点(含
/boot、/efi等),直接运行df -h --output=source,fstype,avail,target | tail -n +2,它会列出所有挂载点及其可用空间
Windows:获取系统盘(C:)及所有固定磁盘的剩余空间
Windows 中“根目录”通常指系统启动盘(默认 C:),但也可扩展理解为所有本地固定磁盘的根路径(如 D:、E:)。推荐使用 PowerShell 获取准确值:
-
Get-PSDrive -PSProvider FileSystem | Where-Object {$_.DisplayRoot -match '^[A-Z]:\$'}—— 列出所有盘符根路径(C:、D:等)及其剩余空间(Free字段) - 单查系统盘:
Get-PSDrive C | Select-Object Used, Free, DisplayRoot - 命令行兼容方式(CMD):
wmic logicaldisk where "drivetype=3" get deviceid,freespace,size,结果单位为字节,需自行换算(除以1024^3得 GB)
跨平台脚本思路(Python 示例)
若需程序化获取,Python 的 shutil.disk_usage() 可查指定路径所在磁盘的剩余空间,配合 os.path.ismount() 或平台特定逻辑判断“根挂载点”:
- Linux/macOS:
[p for p in ['/','/boot','/home'] if os.path.ismount(p)],再对每个路径调用shutil.disk_usage(p) - Windows:
[f'{d}:\' for d in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' if os.path.isdir(f'{d}:\')],过滤出有效盘符后查空间 - 注意:
shutil.disk_usage()返回的是字节值,需转换为 MB/GB 提升可读性
注意事项与常见误区
“根目录列表”不是指 / 下的子目录(如 /bin、/etc),而是指独立挂载的顶级文件系统路径;“剩余空间总量”应明确是单个根分区,还是所有根级挂载点之和:
- Linux 中
/proc、/sys、/dev/shm是虚拟文件系统,df虽显示但无实际磁盘空间,不应计入总量 - Windows 的还原分区、恢复分区通常不可见,也不计入用户可用空间,
Get-PSDrive默认不列出它们 - 容器或 WSL 环境下,
/可能映射到宿主机某路径,df显示的是该路径所在物理磁盘的剩余量










