Linux df 命令 - 磁盘空间查看

df 命令(Disk Free)用于显示Linux系统中文件系统的磁盘空间使用情况。它可以报告文件系统的总空间、已用空间、可用空间和使用百分比等信息。

语法格式

df [选项] [文件或目录]

常用选项

选项 说明
-h--human-readable 以易读格式显示(K、M、G)
-T 显示文件系统类型
-i 显示inode信息而不是块使用情况
-a--all 显示所有文件系统(包括虚拟文件系统)
-l--local 只显示本地文件系统
--total 显示总计信息
-t <类型> 只显示指定类型的文件系统
-x <类型> 排除指定类型的文件系统

基本示例

示例1:查看磁盘使用情况(默认格式)

# 显示所有已挂载文件系统的磁盘使用情况
df

输出结果说明:

  • Filesystem: 文件系统设备名
  • 1K-blocks: 总大小(1K为单位)
  • Used: 已使用空间
  • Available: 可用空间
  • Use%: 使用百分比
  • Mounted on: 挂载点

示例2:使用易读格式显示

# 以人类可读的格式显示磁盘使用情况
df -h

最常用的参数,空间大小以K、M、G为单位显示,更直观。

示例3:显示文件系统类型

# 显示文件系统类型信息
df -T
# 或
df -Th  # 结合易读格式

示例4:查看特定目录的磁盘空间

# 查看根目录的磁盘使用情况
df -h /
# 查看/home目录的磁盘使用情况
df -h /home

高级用法

示例5:显示inode使用情况

# 查看inode使用情况而不是磁盘空间
df -i
# 易读格式查看inode
df -ih

当磁盘空间充足但无法创建新文件时,可能是inode用尽了。

示例6:只显示特定文件系统类型

# 只显示ext4文件系统
df -t ext4 -h
# 只显示xfs文件系统
df -t xfs -h
# 排除tmpfs文件系统
df -x tmpfs -h

示例7:显示总计信息

# 显示所有文件系统的总计信息
df -h --total

实际应用场景

场景1:监控磁盘空间
# 查看所有本地文件系统的磁盘使用情况(排除tmpfs等虚拟文件系统)
df -hl
场景2:查找磁盘使用率超过90%的分区
# 使用awk过滤出使用率超过90%的分区
df -h | awk '$5+0 > 90 {print $0}'
场景3:查看挂载点信息
# 结合grep查看特定挂载点的信息
df -h | grep -E "(Filesystem|/home)"

注意事项

  • 虚拟文件系统: 默认情况下,df会显示一些虚拟文件系统(如tmpfs),使用-l选项可以只显示本地文件系统
  • 挂载点: 如果一个设备有多个挂载点,df会分别显示每个挂载点的使用情况
  • 网络文件系统: df会尝试统计网络文件系统,但可能会因网络延迟而响应较慢
  • 已删除文件: 如果有进程正在使用已删除的文件,这些空间不会立即释放

相关命令

  • du: 查看目录和文件的磁盘使用情况
  • lsblk: 列出所有可用块设备的信息
  • fdisk: 磁盘分区工具
  • mount: 挂载文件系统