在Linux中,查看文件夹文件大小常用du命令:du -sh显示当前目录总大小,du -h --max-depth=1查看各子目录大小,结合sort -rh可按大小降序排序,便于快速定位大文件,find命令可筛选特定类型文件,如find . -type f -size +100M查找大于100MB的文件,df -h查看磁盘整体使用情况,这些命令搭配使用,能高效分析磁盘空间占用,助力文件管理与清理。
在Linux系统中,管理文件和磁盘空间是日常运维的重要任务,无论是排查磁盘占用过高、清理冗余文件,还是分析目录结构,快速查看文件夹及其子文件的占用空间都是关键技能,本文将详细介绍Linux中查看文件夹文件大小的常用命令、具体用法及实用技巧,帮助你高效掌握这一技能。
基础入门:用ls命令快速查看当前目录文件大小
ls是Linux中最常用的文件列表命令,配合特定选项可以快速查看当前目录下文件及子目录的大小(注意:ls默认不递归显示子目录的总大小,仅显示单个文件或目录本身的“元数据大小”,而非其内容占用空间)。
常用选项及示例:
-
-l(长格式显示)+-h(人类可读单位)
显示文件的详细信息(包括权限、所有者、大小、修改时间等),并将文件大小转换为KB、MB、GB等易读格式。
ls -lh
输出示例:
total 12K drwxr-xr-x 2 user user 4.0K Oct 20 10:00 Documents -rw-r--r-- 1 user user 256 Oct 20 09:30 log.txt -rw-r--r-- 1 user user 8.0K Oct 20 09:30 data.zip说明:
Documents是目录,0K是该目录本身的元数据大小(如目录项信息),而非其内容总大小;log.txt和data.zip是文件,显示的是实际文件内容大小。 -
-l+-h+-S(按大小降序排序)
如果希望按文件大小从大到小排序,可添加-S选项:ls -lhS
输出会优先显示大文件,方便快速定位占用空间较多的文件。
局限性:
ls命令无法直接查看目录及其子目录的总占用空间,仅适用于查看当前目录下单个文件或目录的“自身大小”,若需分析目录内容的空间占用,需使用更专业的du命令。
核心工具:du命令——目录空间占用分析利器
du(Disk Usage)是Linux中专门用于查看文件和目录磁盘使用情况的命令,支持递归计算子目录大小,是分析文件夹空间占用的主力工具。
基本用法
直接在命令后跟目录路径,即可查看该目录下所有子文件和子目录的占用空间(默认以块为单位,1块=512字节)。
du /path/to/directory
示例(查看/var/log目录的占用情况):
du /var/log
输出示例(部分):
8 /var/log/apt
4 /var/log/dist-upgrade
1024 /var/log/journal
256 /var/log/unattended-upgrades
2048 /var/log
说明:输出结果中,数字是目录占用的块数,最后一行是总块数(包含所有子目录)。
常用选项组合
(1)-h:人类可读单位
将块数转换为KB、MB、GB,更直观:
du -h /var/log
输出示例:
0K /var/log/apt
4.0K /var/log/dist-upgrade
1.0M /var/log/journal
256K /var/log/unattended-upgrades
2.0M /var/log
(2)-s(汇总总大小)
仅显示指定目录的总占用空间(不递归显示子目录详情),适合快速查看目录总大小:
du -sh /var/log
输出示例:
0M /var/log
(3)-a(显示所有文件)
默认情况下,du不显示普通文件的大小,仅显示目录;添加-a可包含文件:
du -ah /var/log | head -10
输出示例:
0K /var/log/apt
4.0K /var/log/apt/term.log
4.0K /var/log/dist-upgrade
4.0K /var/log/dist-upgrade/dist-upgrade.log
1.0M /var/log/journal
256K /var/log/unattended-upgrades
256K /var/log/unattended-upgrades/unattended-upgrades.log
2.0M /var/log
(4)--max-depth=N:控制递归深度
当目录层级较深时,可通过--max-depth限制递归层级(N为数字,0表示仅显示当前目录,1表示显示一级子目录,以此类推):
# 查看/var/log下一级目录的大小(不递归到子目录的子目录) du -h --max-depth=1 /var/log
输出示例:
0K /var/log/apt
4.0K /var/log/dist-upgrade
1.0M /var/log/journal
256K /var/log/unattended-upgrades
2.0M /var/log 
