查看文件大小的常用命令
在Linux系统中,查看文件大小有多种方法,不同的命令适用于不同的场景,从简单的文件大小查询到复杂的目录空间分析,都能高效完成。

ls命令:基础文件列表与大小查看
ls是Linux中最常用的文件列表命令,结合-l(长格式)和-h(人类可读格式)选项,可以直接查看文件或目录的大小。
- 基本用法:
ls -lh
执行后,文件列表会显示详细信息,包括权限、所有者、大小、修改时间等。
-h选项会将大小转换为KB、MB、GB等更易读的单位(2M表示1.2MB)。 - 查看目录总大小:
若要查看目录及其子目录的总大小,需结合-s(显示总大小)选项:ls -sh
但需注意,
ls -s仅显示目录的直接大小,不包含子目录内容,此时更推荐使用du命令(后文详述)。
du命令:目录空间占用分析
du(disk usage)是专门用于查看文件或目录磁盘使用情况的命令,适合分析目录层级较深时的空间占用。
- 查看单个目录大小:
du -h /path/to/directory
默认情况下,
du会递归显示目录下所有子文件和子目录的大小,并逐级列出。 - 显示总计大小:
若只想查看目录的总大小(不显示子目录详情),可使用-c(总计)和-h选项:du -ch /path/to/directory | tail -n 1
其中
| tail -n 1用于过滤出最后一行的总计结果。 - 限制递归深度:
若目录层级过深,可通过--max-depth选项限制递归层数,例如只查看当前目录及一级子目录的大小:du -h --max-depth=1 /path/to/directory
df命令:文件系统整体空间使用情况
df(disk free)用于查看文件系统的整体磁盘空间使用情况,包括已用空间、可用空间、挂载点等信息,适合监控磁盘容量。

- 查看所有文件系统空间:
df -h
输出结果包括文件系统名称、总大小、已用空间、可用空间、使用率及挂载点。
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% / - 查看指定文件系统的空间:
若要监控特定目录所在的文件系统空间,可结合-t选项指定文件系统类型或直接指定挂载点:df -h /mnt/data
stat命令:文件详细状态与大小
stat命令用于显示文件的详细状态信息,包括文件大小、访问时间、修改时间、权限等,适合需要精确文件元数据的场景。
- 查看文件大小与元数据:
stat /path/to/file
输出结果中,
Size字段即为文件的实际大小(以字节为单位),同时会显示Blocks(磁盘块占用)、IO Block(块大小)等信息。
不同场景下的文件大小查看技巧
查看特定类型的文件大小
若要筛选特定扩展名的文件并计算总大小,可结合find和du命令,查找当前目录下所有.log文件的总大小:
find . -name "*.log" -exec du -ch {} + | grep total$
其中-exec将查找到的文件传递给du命令,grep total$过滤出总计行。
按大小排序文件或目录
若要按文件大小排序并查看占用空间最大的文件或目录,可结合sort和head命令,查看当前目录下最大的10个文件:
du -h * | sort -hr | head -n 10
sort -hr:按人类可读格式的字符串反向排序(从大到小);head -n 10:显示前10行结果。
监控文件大小变化
若需实时监控文件大小的动态变化(如日志文件增长),可使用watch命令结合du或ls:

watch -n 1 'ls -lh /path/to/file'
-n 1表示每秒刷新一次结果,适合观察文件增长趋势。
文件大小单位的理解与转换
Linux中文件大小的默认单位通常是字节(B),但通过-h选项可自动转换为更易读的单位:
- 单位换算关系:
- 1 KB = 1024 Bytes
- 1 MB = 1024 KB
- 1 GB = 1024 MB
- 1 TB = 1024 GB
- 手动单位转换:
若需将字节转换为指定单位,可使用numfmt或bc工具,将1048576字节转换为MB:echo "1048576 / 1024 / 1024" | bc -l
输出结果为
000000,即1MB。
常见问题与注意事项
硬链接与软链接对文件大小的影响
- 硬链接:与原文件共享相同的inode,文件大小计入原文件,不影响统计结果;
- 软链接(符号链接):仅存储原文件的路径,
ls -l显示的大小为链接文件本身的路径长度(通常几字节),而du会跟随链接统计原文件大小。
特殊文件的大小显示
Linux中存在一些特殊文件,如设备文件(/dev/sda)、管道文件()等,其大小显示可能无实际意义。ls -l /dev/sda显示的“0”大小表示设备文件无数据内容,但实际占用磁盘空间。
文件系统类型与大小统计
不同文件系统(如ext4、xfs、NTFS)对文件大小的存储方式可能存在差异,例如NTFS文件系统在Linux中通过ntfs-3g挂载时,大小统计可能因权限设置而受限。
Linux查看文件大小的方法多样,从基础的ls到专业的du和df,用户可根据需求选择合适的工具,日常运维中,ls -lh适合快速查看单个文件大小,du用于目录空间分析,df则用于监控磁盘整体容量,结合find、sort等命令,还能实现灵活的文件筛选与排序,理解文件大小单位的换算规则以及特殊文件的处理方式,能更准确地分析磁盘使用情况,提升系统管理效率。




















