当前位置:首页>Linux>Linux df 查看文件系统磁盘空间使用情况

Linux df 查看文件系统磁盘空间使用情况

  • 2026-10-21 13:28:27
Linux df 查看文件系统磁盘空间使用情况

df[1](disk free)命令用于报告文件系统的磁盘空间使用情况,包括已用空间和可用空间。

基本语法:

df [选项]... [文件]...

可以直接输入命令,无参数使用。

$ dfFilesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /tmpfs              65536       0     65536   0% /devshm                65536       0     65536   0% /dev/shm/dev/vda1       61202244 6409624  51651296  12% /etc/hoststmpfs            2006452       0   2006452   0% /proc/scsitmpfs            2006452       0   2006452   0% /sys/firmware
  • 显示已挂载文件系统的空间使用情况
  • 默认以 1024 字节为单位显示

也可以指定文件或目录。

$ df /homeFilesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /$ df /dev/shmFilesystem     1K-blocks  Used Available Use% Mounted onshm                65536     0     65536   0% /dev/shm
  • 显示包含指定文件或目录的文件系统信息
  • 如果参数是已挂载文件系统的设备文件,显示该文件系统的空间信息

1. 显示所有文件系统

df -adf --all
  • 包括虚拟文件系统(如 /proc)
  • 包括重复挂载的文件系统
  • 包括不可访问的文件系统
$ df --allFilesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /proc                   0       0         0    - /proctmpfs              65536       0     65536   0% /devdevpts                 0       0         0    - /dev/ptssysfs                  0       0         0    - /syscgroup                 0       0         0    - /sys/fs/cgroupmqueue                 0       0         0    - /dev/mqueueshm                65536       0     65536   0% /dev/shm/dev/vda1       61202244 6409624  51651296  12% /etc/resolv.conf/dev/vda1       61202244 6409624  51651296  12% /etc/hostname/dev/vda1       61202244 6409624  51651296  12% /etc/hostsdevpts                 0       0         0    - /dev/consoleproc                   0       0         0    - /proc/busproc                   0       0         0    - /proc/fsproc                   0       0         0    - /proc/irqproc                   0       0         0    - /proc/sysproc                   0       0         0    - /proc/sysrq-triggertmpfs              65536       0     65536   0% /proc/interruptstmpfs              65536       0     65536   0% /proc/kcoretmpfs              65536       0     65536   0% /proc/keystmpfs              65536       0     65536   0% /proc/timer_listtmpfs            2006452       0   2006452   0% /proc/scsitmpfs            2006452       0   2006452   0% /sys/firmware

2. 人性化显示

df -hdf --human-readable
  • 使用易读的单位(K、M、G、T)
  • 使用 1024 为基数(1K=1024 字节)
$ df -hFilesystem      Size  Used Avail Use% Mounted onoverlay          59G  6.2G   50G  12% /tmpfs            64M     0   64M   0% /devshm              64M     0   64M   0% /dev/shm/dev/vda1        59G  6.2G   50G  12% /etc/hoststmpfs           2.0G     0  2.0G   0% /proc/scsitmpfs           2.0G     0  2.0G   0% /sys/firmware
df -Hdf --si
  • 使用 SI 单位制(1000 为基数)
  • 1M=1,000,000 字节
$ df -HFilesystem      Size  Used Avail Use% Mounted onoverlay          63G  6.6G   53G  12% /tmpfs            68M     0   68M   0% /devshm              68M     0   68M   0% /dev/shm/dev/vda1        63G  6.6G   53G  12% /etc/hoststmpfs           2.1G     0  2.1G   0% /proc/scsitmpfs           2.1G     0  2.1G   0% /sys/firmware

3. 指定块大小

df -B 1Gdf --block-size=1G
  • 指定显示单位
  • 支持:K、M、G、T、P、E、Z、Y
$ df -B 1GFilesystem     1G-blocks  Used Available Use% Mounted onoverlay               59     7        50  12% /tmpfs                  1     0         1   0% /devshm                    1     0         1   0% /dev/shm/dev/vda1             59     7        50  12% /etc/hoststmpfs                  2     0         2   0% /proc/scsitmpfs                  2     0         2   0% /sys/firmware
df -k
  • 强制使用 1024 字节块显示
  • 等价于 --block-size=1K
$ df -kFilesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /tmpfs              65536       0     65536   0% /devshm                65536       0     65536   0% /dev/shm/dev/vda1       61202244 6409624  51651296  12% /etc/hoststmpfs            2006452       0   2006452   0% /proc/scsitmpfs            2006452       0   2006452   0% /sys/firmware

4. 显示 inode 信息

df -idf --inodes
  • 显示 inode使用情况而非块使用
  • inode 包含文件的元数据(所有者、权限、时间戳等)
$ df -iFilesystem      Inodes  IUsed   IFree IUse% Mounted onoverlay        3907584 225278 3682306    6% /tmpfs           501613     17  501596    1% /devshm             501613      1  501612    1% /dev/shm/dev/vda1      3907584 225278 3682306    6% /etc/hoststmpfs           501613      1  501612    1% /proc/scsitmpfs           501613      1  501612    1% /sys/firmware

5. 限制显示范围

df -ldf --local
  • 仅显示本地文件系统
  • 默认显示所有(包括网络文件系统)
$ df -lFilesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /tmpfs              65536       0     65536   0% /devshm                65536       0     65536   0% /dev/shm/dev/vda1       61202244 6409624  51651296  12% /etc/hoststmpfs            2006452       0   2006452   0% /proc/scsitmpfs            2006452       0   2006452   0% /sys/firmware
df -t ext4df --type=ext4
  • 仅显示指定类型的文件系统
  • 可多次使用指定多种类型
df -t ext4 -t xfs
$ df -t ext4Filesystem     1K-blocks    Used Available Use% Mounted on/dev/vda1       61202244 6409624  51651296  12% /etc/hosts
df -x nfsdf --exclude-type=nfs
  • 排除指定类型的文件系统
  • 可多次使用排除多种类型
$ df -x ext4Filesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /tmpfs              65536       0     65536   0% /devshm                65536       0     65536   0% /dev/shmtmpfs            2006452       0   2006452   0% /proc/scsitmpfs            2006452       0   2006452   0% /sys/firmware

6. 自定义输出格式

df --output=target,size,used,avail,pcent
  • 自定义显示的列和顺序
  • 有效字段:
    • source:挂载源(设备)
    • fstype:文件系统类型
    • target:挂载点
    • size:总块数
    • used:已用块数
    • avail:可用块数
    • pcent:使用百分比
    • itotal:总 inode 数
    • iused:已用 inode 数
    • iavail:可用 inode 数
    • ipcent:inode 使用百分比
    • file:命令行指定的文件名

示例:

$ df --output=target,size,used,avail,pcentMounted on    1K-blocks    Used    Avail Use%/              61202244 6409624 51651296  12%/dev              65536       0    65536   0%/dev/shm          65536       0    65536   0%/etc/hosts     61202244 6409624 51651296  12%/proc/scsi      2006452       0  2006452   0%/sys/firmware   2006452       0  2006452   0%
# 显示所有字段$ df --outputFilesystem     Type     Inodes  IUsed   IFree IUse% 1K-blocks    Used    Avail Use% File Mounted onoverlay        overlay 3907584 225278 3682306    6%  61202244 6409624 51651296  12% -    /tmpfs          tmpfs    501613     17  501596    1%     65536       0    65536   0% -    /devshm            tmpfs    501613      1  501612    1%     65536       0    65536   0% -    /dev/shm/dev/vda1      ext4    3907584 225278 3682306    6%  61202244 6409624 51651296  12% -    /etc/hoststmpfs          tmpfs    501613      1  501612    1%   2006452       0  2006452   0% -    /proc/scsitmpfs          tmpfs    501613      1  501612    1%   2006452       0  2006452   0% -    /sys/firmware

7. POSIX 兼容模式

df -Pdf --portability
  • 使用 POSIX 输出格式
  • 每行显示一个完整的文件系统信息
  • 不受环境变量影响(除非设置了 POSIXLY_CORRECT)
$ df --portabilityFilesystem     1024-blocks    Used Available Capacity Mounted onoverlay           61202244 6409624  51651296      12% /tmpfs                65536       0     65536       0% /devshm                  65536       0     65536       0% /dev/shm/dev/vda1         61202244 6409624  51651296      12% /etc/hoststmpfs              2006452       0   2006452       0% /proc/scsitmpfs              2006452       0   2006452       0% /sys/firmware

8. 显示文件系统类型

df -Tdf --print-type
  • 显示每个文件系统的类型
  • 常见类型:ext4、xfs、btrfs、nfs、ntfs、vfat 等
$ df -TFilesystem     Type    1K-blocks    Used Available Use% Mounted onoverlay        overlay  61202244 6409624  51651296  12% /tmpfs          tmpfs       65536       0     65536   0% /devshm            tmpfs       65536       0     65536   0% /dev/shm/dev/vda1      ext4     61202244 6409624  51651296  12% /etc/hoststmpfs          tmpfs     2006452       0   2006452   0% /proc/scsitmpfs          tmpfs     2006452       0   2006452   0% /sys/firmware

9. 同步数据

df --sync
  • 获取数据前调用 sync 系统调用
  • 在某些系统上(如 Solaris)可获得更新数据
  • 但会使 df 运行变慢
$ df --syncFilesystem     1K-blocks    Used Available Use% Mounted onoverlay         61202244 6409624  51651296  12% /tmpfs              65536       0     65536   0% /devshm                65536       0     65536   0% /dev/shm/dev/vda1       61202244 6409624  51651296  12% /etc/hoststmpfs            2006452       0   2006452   0% /proc/scsitmpfs            2006452       0   2006452   0% /sys/firmware
df --no-sync
  • 不调用 sync(默认行为)
  • 运行更快,但数据可能不是最新的

10. 显示总计

df --total
  • 显示所有文件系统的总计
  • 在最后一行显示汇总信息
$ df --totalFilesystem     1K-blocks     Used Available Use% Mounted onoverlay         61202244  6409624  51651296  12% /tmpfs              65536        0     65536   0% /devshm                65536        0     65536   0% /dev/shm/dev/vda1       61202244  6409624  51651296  12% /etc/hoststmpfs            2006452        0   2006452   0% /proc/scsitmpfs            2006452        0   2006452   0% /sys/firmwaretotal          126548464 12819248 107446568  11% -

最佳实践

  1. 日常使用推荐:df -h
  2. 排查磁盘满问题时:同时检查df -h和df -i
  3. 脚本中使用时:使用--output确保输出格式稳定
  4. 需要最新数据时(某些系统):使用--sync
  5. 性能优先时:使用--no-sync(默认)

尤其是排查磁盘空间满时的问题,除了容量外,还要查看 inode。当然 inode 的规划要根据服务器的用途,在格式化磁盘时就要做好。

参考资料

[1] 

df: https://man.archlinux.org/man/df.1

最新文章

随机文章