统计目录文件大小并按从大到小排序需用 du -sh 配合 sort -hr;当前目录普通文件用 du -sh | sort -hr,含隐藏文件改用 du -sh .1 * | sort -hr,全树文件用 find -type f -exec du -h {} + | sort -hr,取前N个加 head -n N。. ↩

要统计目录中各文件的大小并按从大到小排序,核心是用 du 提取真实磁盘占用,再用 sort 排序——别用 ls -l,它只显示逻辑大小,且不包含子目录里的文件。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
只看当前目录下的普通文件(不含子目录)
命令:du -sh * | sort -hr 2>/dev/null
说明:
- * 展开当前目录下所有非隐藏项(不包括 . 和 ..)
- du -sh 对每个项单独统计大小,-h 输出 KB/MB/GB,-s 避免递归
- sort -hr 按人类可读格式倒序排列(最大的在前)
- 2>/dev/null 屏蔽权限拒绝等报错,保持输出干净
注意:该命令不统计隐藏文件(如 .bashrc)。如需包含,改用:du -sh .[^.]* * 2>/dev/null | sort -hr(覆盖 .a 类但排除 . 和 ..)
查整个目录树里所有普通文件(含子目录中的)
命令:find /path/to/dir -type f -exec du -h {} + | sort -hr
说明:
- find ... -type f 精准匹配所有普通文件,跳过目录、设备、符号链接等
- -exec du -h {} + 批量调用 du,比 \; 更高效,且能正确处理含空格或换行符的文件名
- 结果每行形如 12M /path/to/dir/sub/file.txt,直观可读
替代写法(更严谨,避免特殊字符干扰):find /path/to/dir -type f -print0 | xargs -0 du -h | sort -hr
快速找出最大的前 N 个文件
命令:find /path/to/dir -type f -exec du -h {} + | sort -hr | head -n 20
说明:
- 在完整排序结果中截取前 20 行
- 可把 20 换成任意数字,比如 10 或 50
- 若只想看文件名(去掉大小),加 | cut -f2-:find /path/to/dir -type f -exec du -h {} + | sort -hr | head -n 10 | cut -f2-
补充:想同时看文件和目录的大小排行
命令:du -ah /path/to/dir | sort -hr | head -n 30
说明:
- du -ah 显示所有文件(-a)和目录(默认)的大小,-h 人性化输出
- 注意:目录大小是其下全部内容的总和,所以大目录会自然排在前面
- 适合快速定位“空间大户”,但无法区分单个大文件 vs 多个小文件堆积的大目录










