Linux查看当前目录文件大小,常用ls -lh显示文件详细信息及人类可读大小(如KB、MB);du -sh快速统计目录总容量,--max-depth=1可限制子目录深度,交互式工具ncdu支持实时浏览和删除文件,适合深入分析,技巧上,可通过ls -lS | head -n 10按大小排序查看最大文件,或用find . -type f -exec du -sh {} +筛选特定文件类型,掌握这些命令,能高效管理磁盘空间。
在Linux系统中,管理磁盘空间是日常运维和开发中常见的需求,查看当前目录下的文件大小,能帮助我们快速定位大文件、清理无用数据,或分析存储占用情况,本文将介绍几种常用命令,从基础到进阶,助你高效掌握文件大小查看技巧。
基础命令:ls——快速查看文件大小
ls(list)是最常用的文件列表命令,通过搭配不同选项,可以灵活显示文件大小信息。
ls -l:显示详细文件信息(含字节大小)
-l选项以长格式输出文件列表,其中第5列即为文件大小(单位:字节)。
ls -l
输出示例:
-rw-r--r-- 1 user user 1024 Oct 20 10:30 test.txt
-rw-r--r-- 1 user user 2048 Oct 20 11:45 data.log
drwxr-xr-x 5 user user 4096 Oct 20 09:15 docs/
说明:
test.txt大小为1024字节,data.log为2048字节,docs/是目录(显示的是目录本身大小,而非内容总大小)。
ls -lh:人性化显示文件大小(自动转换单位)
-h(human-readable)选项会将文件大小转换为更易读的单位(K、M、G、T等),适合查看大文件。
ls -lh
输出示例:
-rw-r--r-- 1 user user 1.0K Oct 20 10:30 test.txt
-rw-r--r-- 1 user user 2.0M Oct 20 11:45 data.log
drwxr-xr-x 5 user user 4.0K Oct 20 09:15 docs/
说明:1024字节显示为0K,2048字节显示为0K(此处示例中data.log实际为2048字节,若为2MB则会显示为0M)。
ls -lS:按文件大小排序(从大到小)
-S选项会根据文件大小降序排列,方便快速定位最大的文件。
ls -lS
输出示例:
-rw-r--r-- 1 user user 10M Oct 20 12:00 large_file.zip
-rw-r--r-- 1 user user 2.0M Oct 20 11:45 data.log
-rw-r--r-- 1 user user 1.0K Oct 20 10:30 test.txt
ls -lsh:结合大小排序与人性化显示
-s(size)选项显示文件块大小,搭配-h和-l,可按大小排序并人性化显示:
ls -lsh
输出示例:
10M -rw-r--r-- 1 user user 10M Oct 20 12:00 large_file.zip
2.0M -rw-r--r-- 1 user user 2.0M Oct 20 11:45 data.log
1.0K -rw-r--r-- 1 user user 1.0K Oct 20 10:30 test.txt
进阶命令:du——统计目录及文件占用空间
du(disk usage)专门用于统计文件或目录的磁盘占用空间,与ls不同,du会递归计算目录内容的大小(默认单位也是字节)。
du -sh:显示当前目录总大小
-s(summarize)仅显示总计大小,-h人性化单位:
du -sh
输出示例:
15M .
说明:当前目录(含所有子目录和文件)共占用15MB磁盘空间。
du -ah:显示所有文件及目录大小
-a(all)显示所有文件(包括隐藏文件)和目录的大小,搭配-h更直观:
du -ah
输出示例:
0K ./docs/backup
1.0K ./docs/report.txt
8.0K ./docs/
4.0K ./temp/.hidden_file
2.0M ./data.log
15M .
du -h --max-depth=1:限制目录层级(仅查看当前目录下一级)
--max-depth=1只统计当前目录直接子目录/文件的大小,避免递归输出,适合快速定位大目录:
du -h --max-depth=1
输出示例:
0K ./docs
2.0M ./data.log
1.0K ./test.txt
15M .
精准筛选:find——按大小查找文件
如果需要查找特定大小范围的文件(如“大于100MB的文件”),find命令是最佳选择。
查找大于指定大小的文件
语法:find . -type f -size +[大小][单位]
- 大于
- 小于
- 单位:
k(KB)、M(MB)、G(GB)
示例:查找当前目录下大于100MB的文件
find . -type f -size +100M
查找小于指定大小的文件
示例:查找当前目录下小于10KB的文件
find . -type f -size -10k
查找指定大小的文件(精确到MB)
示例:查找大小恰好为50MB的文件
find . -type f -size 50M
组合技巧:管道与排序,高效分析大文件
通过管道符结合其他命令(如sort、head),可以进一步优化分析流程。
查看当前下最大的10个文件
du -ah . | sort -hr | head -n 10
说明:
du -ah .:统计当前目录所有文件/目录大小;sort -hr:按大小降序排序(-h支持单位排序,-r降序);head -n 10:取前10行。
查找大于10MB的文件并按大小排序
find . -type f -size +10M | xargs du -sh | sort -hr
说明:
find筛选出大于10MB的文件;xargs du -sh:对筛选结果统计大小;sort -hr:降序排序。
注意事项:ls与du的区别
-
统计范围不同:
ls仅显示文件本身的“内容大小”(如文件存储的字节数);du显示文件/目录的“磁盘占用空间”(含元数据、碎片等,通常略大于文件实际大小)。
-
目录处理不同:
ls显示目录本身的大小(通常是4KB或16KB,即inode占用空间);du -sh会递归计算目录内所有文件的总大小。
-
符号链接:
ls默认显示链接文件指向的目标文件大小;du默认跟随链接(显示目标文件大小),若需显示链接本身大小,需加-l选项。
场景化选择命令
| 需求场景 | 推荐命令 |
|---|---|
| 快速查看单个文件大小 | ls -lh 文件名 |
| 查看当前目录总大小 | du -sh |
| 按大小排序找大文件 | ls -lS 或 du -sh | sort -hr |
| 查找特定大小范围的文件 | find . -type f -size +/-[单位] |
| 分析目录层级占用情况 | du -h --max-depth=1 |
掌握这些命令,能让你在Linux系统中高效管理文件大小,无论是日常清理还是运维分析,都能得心应手,建议结合实际场景多加练习,逐步熟悉命令的灵活运用。


