在Linux系统中,df命令(disk free)是一个用于显示磁盘空间使用情况的基本工具,它能够帮助用户快速了解文件系统的总容量、已用空间、可用空间以及挂载点等信息,无论是系统管理员还是普通用户,掌握df命令的使用方法都是管理磁盘空间的重要技能,本文将详细介绍df命令的功能、常用选项、输出格式解析以及实际应用场景,并通过表格形式清晰展示不同选项的效果,最后附上相关问答(FAQs)以解答常见疑问。

df命令的基本功能与默认输出
直接在终端输入df
命令,系统会列出所有已挂载文件系统的磁盘空间使用情况,默认输出通常包含以下列:
- Filesystem:文件系统的设备名称或挂载点标识。
- Size:文件系统的总容量(通常以KB为单位)。
- Used:已使用的空间。
- Avail:可用空间(即普通用户可使用的空间,会考虑保留空间)。
- Use%:已用空间的百分比。
- Mounted on:文件系统的挂载点。
在Ubuntu系统中运行df
,可能输出如下:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 104857600 20971520 78684480 21% /
tmpfs 2097152 0 2097152 0% /dev/shm
/dev/sdb1 207424256 104857600 102716656 51% /data
这里,/dev/sda1
是根分区,总容量约100GB,已用20GB,可用78GB;/dev/sdb1
是数据分区,已用51%的空间。
df命令的常用选项及功能
df命令支持多种选项,用于定制输出格式或显示特定信息,以下是常用选项的详细说明:

选项 | 全称 | 功能描述 | 示例 |
---|---|---|---|
-h |
--human-readable |
以人类可读格式显示(如KB、MB、GB) | df -h |
-T |
--print-type |
显示文件系统类型(如ext4、xfs) | df -T |
-i |
--inodes |
显示inode使用情况而非磁盘块 | df -i |
-t |
--type= |
只显示指定类型的文件系统 | df -t ext4 |
-x |
--exclude-type= |
排除指定类型的文件系统 | df -x tmpfs |
--total |
显示所有文件系统的汇总信息 | df --total |
|
-P |
--portability |
使用POSIX格式输出,避免截断长路径 | df -P |
-h
选项:人类可读格式
默认情况下,df以KB为单位显示容量,对于大容量磁盘不直观,使用-h
选项后,输出会自动转换为合适的单位:
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 20G 78G 21% /
/dev/sdb1 200G 100G 98G 51% /data
-T
选项:显示文件系统类型
不同文件系统(如ext4、xfs、ntfs)的特性不同,通过-T
选项可明确类型:
df -T
输出示例:

Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 104857600 20971520 78684480 21% /
/dev/sdb1 xfs 207424256 104857600 102716656 51% /data
-i
选项:检查inode使用情况
inode是Linux中存储文件元数据的关键结构,当磁盘空间未满却无法创建新文件时,可能是inode耗尽,使用-i
选项可查看inode使用情况:
df -i
输出示例:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 2621440 524288 2097152 20% /
/dev/sdb1 5242880 1048576 4194304 20% /data
-t
和-x
选项:过滤文件系统类型
若只想查看特定类型的文件系统(如ext4),或排除临时文件系统(如tmpfs、proc):
df -t ext4 # 只显示ext4文件系统 df -x tmpfs # 排除tmpfs文件系统
--total
选项:汇总信息
通过--total
选项可快速查看所有文件系统的总容量、已用空间和可用空间的汇总值:
df --total
输出示例:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 104857600 20971520 78684480 21% /
/dev/sdb1 207424256 104857600 102716656 51% /data
total 312281856 125729120 181401136 41% -
df命令的实际应用场景
- 磁盘空间监控:定期运行
df -h
,检查各分区使用率,避免因空间不足导致服务中断,当Use%
超过90%时,需清理或扩容。 - inode排查:若提示“No space left on device”但磁盘仍有剩余空间,可用
df -i
检查inode是否耗尽。 - 文件系统类型识别:通过
df -T
确认分区类型,便于选择合适的修复工具(如ext4的e2fsck
)。 - 排除特殊文件系统:在计算实际可用空间时,使用
df -x tmpfs -x devtmpfs
排除虚拟文件系统,避免数据偏差。
注意事项
- 保留空间的影响:
Avail
列显示的是普通用户可用的空间,Linux会为root用户保留一定比例(通常5%)的空间,因此Used + Avail < Size
。 - 未挂载文件系统:df默认不显示未挂载的文件系统,需通过
df -h /dev/sdc1
查看特定分区的信息。 - 输出格式差异:不同Linux发行版的df输出可能略有不同,可通过
man df
查看手册页确认细节。
相关问答(FAQs)
Q1: 为什么df显示的已用空间(Used)加上可用空间(Avail)不等于总空间(Size)?
A1: 这是因为Linux文件系统会为root用户保留一部分空间(默认5%),以防止普通用户耗尽所有空间导致系统崩溃,一个100GB的分区,普通用户只能使用95GB,剩余5%仅root可使用。Used + Avail < Size
是正常现象,若需查看实际总空间,可使用df -B 1
(以字节为单位)或查看文件系统超级块信息。
Q2: 如何使用df命令快速定位哪个目录占用了最多空间?
A2: df命令本身不显示目录级别的磁盘使用情况,但可结合du
命令实现,先通过df -h
找到高使用率的挂载点(如/data
),再运行du -sh /data/* | sort -hr
,按大小排序显示该目录下各子目录的占用情况,若需实时监控,可使用ncdu
(ncurses disk usage)工具交互式分析。