ls -lhS 可按大小从大到小排序显示当前目录文件,第五列是带单位的大小;加 -r 可逆序;用 ls -lhSp | grep -v '/$' 排除目录;递归查大文件需 find + sort 或 du;ncdu 适合交互式分析;find -size 可快速筛选超大文件。

直接用 ls -lhS 就能按文件大小从大到小排序,带单位(K/M/G)显示,清晰直观。
只看当前目录的文件(不含子目录)
ls -lhS 是最常用、最轻量的方式。它把最大的文件排在最前面,第五列就是大小,一眼就能识别出哪些文件占空间最多。
如果想从小到大排,加 -r:ls -lhSr。
注意:默认会把目录也列出来(目录大小是其元数据占用,不是内容总和),若只想看纯文件,可以过滤:
ls -lhSp | grep -v '/$' | head -n 10
这里 -p 给目录加 / 标记,grep -v '/$' 排除所有以 / 结尾的行,即去掉目录。
递归查看所有文件(含子目录里的)
这时 ls 不够用了,得用 find 配合 ls 或 du:
-
精准列出所有普通文件并按大小排前10:
find . -type f -exec ls -lh {} \; 2>/dev/null | sort -hr -k5 | head -n 10-type f确保只处理文件;2>/dev/null忽略权限错误;sort -hr -k5按第五列(大小字段)数值逆序排;head -n 10取前十。 -
快速统计每个文件/目录占用,并排前10:
Linux Security Scanner下载Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
du -ah . 2>/dev/null | sort -hr | head -n 10
du -ah递归统计所有项(-a含文件,-h带单位),适合发现“谁吃掉了磁盘”。
交互式深度分析(推荐用于排查空间问题)
装一个 ncdu,它专为这事设计:
sudo apt install ncdu # Debian/Ubuntu # 或 sudo yum install ncdu # RHEL/CentOS ncdu /path/to/dir
运行后按 Shift+S 切换大小排序,方向键浏览,d 可预删,c 查路径详情——比翻命令行高效得多。
快速筛选超大文件(比如 >500MB)
不用全量排序,直接过滤更省资源:
find /var/log -type f -size +500M -ls
+500M 表示大于 500MB;-ls 输出详细信息,含大小、权限、时间等。
不复杂但容易忽略

















