上一篇
linux如何看文件夹大小
- Linux
- 2025-07-15
- 3475
Linux 中,查看文件夹大小可使用以下命令:
du -sh 文件夹路径
,
-s
表示汇总,
-h
以人类可读格式显示大小
Linux系统中,查看文件夹大小是一项常见且重要的操作,有助于用户了解磁盘使用情况并优化存储空间,以下是几种常用的方法及其详细说明:
使用du
命令
du
(disk usage)命令是查看文件夹大小的核心工具,支持多种参数组合以满足不同需求:
命令 | 作用 | 示例 |
---|---|---|
du -sh [目录] |
显示指定目录的总大小,-s 表示汇总,-h 以人类可读格式(KB/MB/GB)显示。 |
du -sh /var |
du -h --max-depth=1 [目录] |
显示当前目录下一级子目录的大小,不递归深层目录。 | du -h --max-depth=1 /home/user |
du -ah [目录] |
递归显示所有文件和目录的大小,-a 表示包含隐藏文件。 |
du -ah /etc |
du -sh | sort -n |
统计当前目录下所有子目录的大小并排序。 | du -sh / | sort -n |
注意:若未指定目录,默认为当前路径()。du -sh .
可查看当前目录总大小。
使用ls
命令
ls
命令主要用于列出文件信息,部分参数可间接反映大小:
命令 | 作用 | 示例 |
---|---|---|
ls -lh [文件/目录] |
以长格式显示文件大小,-h 自动单位转换(KB/MB等)。 |
ls -lh /etc/passwd |
ls -lS [目录] |
按文件大小排序,-S 表示从大到小排列。 |
ls -lSh /var/log |
局限性:ls
仅显示单个文件或目录的尺寸,无法直接统计目录总大小(需结合du
)。
使用stat
命令
stat
命令提供文件的详细属性,包括精确大小:
命令 | 作用 | 示例 |
---|---|---|
stat [文件] |
显示文件大小、权限、修改时间等,默认单位为字节。 | stat /etc/hosts |
输出示例:
File: /etc/hosts Size: 123 # 文件大小(字节) Blocks: 8 # 占用块数 IO Block: 4096 # 块大小
使用find
命令结合筛选
find
可通过条件搜索文件,并结合其他命令统计大小:
命令 | 作用 | 示例 |
---|---|---|
find [路径] -type f -size +1G |
查找大于1GB的文件,-type f 限定普通文件。 |
find /home -type f -size +1G |
find [路径] -type f -exec du -h {} + |
递归显示所有文件大小,并通过du 格式化输出。 |
find /var/log -type f -exec du -h {} + |
扩展:结合sort
排序结果:
find / -type f -size +100M -print0 | xargs -0 du -h | sort -hr
此命令会列出全系统大于100MB的文件,并按大小降序排列。
交互式工具ncdu
ncdu
是一个基于文本界面的交互式磁盘分析工具,适合直观浏览:
- 安装:
- Debian/Ubuntu:
sudo apt install ncdu
- CentOS/RHEL:
sudo yum install ncdu
。
- Debian/Ubuntu:
- 运行:直接输入
ncdu
,即可通过键盘导航目录,实时显示文件/文件夹大小及占比。
优势:支持按需展开/折叠目录、排序、删除文件等操作,适合清理磁盘时使用。
其他相关命令
命令 | 作用 |
---|---|
df -h |
查看文件系统的磁盘使用情况(总空间、已用、可用)。 |
free -h |
查看内存使用情况,辅助判断系统资源是否被占满。 |
FAQs
Q1:如何只查看当前目录下子目录的大小,不包括文件?
A1:使用du -h --max-depth=1 [目录]/
,
du -h --max-depth=1 /home/user/
此命令会跳过文件,仅统计子目录的总大小。
Q2:如何查找系统中大于1GB的文件夹?
A2:结合du
和find
命令:
find / -type d -exec du -sh {} + | grep '^[0-9]+G'
此命令会递归搜索全系统,筛选出总大小含“G”单位的目录