Linux的df和du
- df命令
 - du命令
 - 常用场景
 - 
- [1、以易读的单位(如 K、M、G)显示容量](#1、以易读的单位(如 K、M、G)显示容量)
 - 2、显示文件系统类型
 - [3、指定文件 / 目录](#3、指定文件 / 目录)
 - 4、显示/home目录下各子项的大小(含子目录)
 - 5、显示/var/log的总大小
 - [6、统计指定类型文件的总大小(如所有 .txt 文件)](#6、统计指定类型文件的总大小(如所有 .txt 文件))
 - [7、查看当前目录下最大的 5 个文件 / 目录](#7、查看当前目录下最大的 5 个文件 / 目录)
 
 
df命令
作用
df 命令用于查看文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间及挂载点等信息。
格式
直接执行 df 会显示所有已挂载文件系统的磁盘使用情况,默认以 1K 块 为单位
            
            
              bash
              
              
            
          
          df 
        参数
-h(human-readable,人性化显示):以易读的单位(如 K、M、G)显示容量,自动转换最适合的单位(推荐日常使用)
-H(类似 -h,但以 1000 为基数):与 -h 类似,但单位换算以 1000 为基数(而非 1024),例如 1G = 1000M(常用于硬盘厂商的容量计算方式)。
-T(显示文件系统类型):在输出中增加一列,显示每个文件系统的类型(如 ext4、xfs、tmpfs 等)。
-i(inodes 信息):显示 inode 的使用情况(而非磁盘容量),包括总 inode 数、已用、可用及占比。场景:排查因 inode 耗尽导致的 "磁盘未满但无法创建文件" 问题。
-k:以 KB(1024 字节)为单位(默认)。
-m:以 MB(1024KB)为单位。
-g:以 GB(1024MB)为单位
-P(POSIX 兼容格式):输出格式符合 POSIX 标准,每行只显示一个文件系统的信息,适合脚本处理。
- h [文件路径] | [文件夹路径]指定文件 / 目录作用:只显示包含该文件或目录的文件系统的使用情况
-a(all,显示所有文件系统):包括虚拟文件系统(如 tmpfs、sysfs 等,通常不占用实际磁盘空间)
du命令
作用
du(disk usage)命令用于查看文件或目录的磁盘占用空间,与 df 不同(df 看整个文件系统),du 更侧重具体文件 / 目录的大小。
格式
默认显示当前目录下所有子目录的磁盘占用,以 1K 块 为单位,最后一行显示总大小
            
            
              bash
              
              
            
          
          du
        参数
-h(human-readable,人性化显示):以易读单位(K、M、G)显示大小,自动适配最合适的单位(推荐日常使用)
-s(summary,仅显示总和):只输出指定目录 / 文件的总大小,不显示子目录细节。场景:快速查看某个目录的总占用空间。
-a(all,包含文件):不仅显示目录大小,还包含每个文件的大小(默认只显示目录)
-c(total,显示总计):在输出的最后一行增加 "总计"(total),适合统计多个目录 / 文件的总和。
-d N(depth,限制目录深度):只显示深度为 N 的目录大小(N=0 等同于 -s,N=1 显示一级子目录)。场景:避免输出过多子目录,聚焦特定层级。
-k:以 KB(1024 字节)为单位(默认)。
-m:以 MB(1024KB)为单位。
-g:以 GB(1024MB)为单位
--exclude=PATTERN(排除指定文件 / 目录):排除符合模式(如文件名、通配符)的文件或目录,不统计其大小。
-L(follow links,跟随符号链接):将符号链接(软链接)视为实际文件 / 目录,统计其指向的目标大小(默认不跟随)
常用场景
1、以易读的单位(如 K、M、G)显示容量
            
            
              bash
              
              
            
          
          df -h
# 输出类似:/dev/sda1  50G  15G  35G  30% /
df -H
# 1G = 1000M
        2、显示文件系统类型
            
            
              bash
              
              
            
          
          df -T
# 输出包含:/dev/sda1  ext4  52403200  15728640  36674560  30% /
        3、指定文件 / 目录
            
            
              bash
              
              
            
          
          df -h /home  # 只查看/home所在分区的空间
df -h ./file.txt  # 查看file.txt所在分区的空间
        4、显示/home目录下各子项的大小(含子目录)
            
            
              bash
              
              
            
          
          du -h /home
        5、显示/var/log的总大小
            
            
              bash
              
              
            
          
          du -sh /var/log  # 仅显示/var/log的总大小(-s和-h组合)
        6、统计指定类型文件的总大小(如所有 .txt 文件)
            
            
              bash
              
              
            
          
          du -ch *.txt  # 最后一行显示所有.txt的总和
        7、查看当前目录下最大的 5 个文件 / 目录
            
            
              bash
              
              
            
          
          du -ah ./ | sort -hr | head -n 5