sort -h:正确排序 1.5K、10M 这类人类可读大小
用 GNU sort 的 -h 选项在 Linux 上对 du/df/ls -lh 的输出按真实大小排序。
把大小输出通过管道传给 sort -h,即可按 K/M/G 后缀的真实大小排序(加 -r 则从大到小)。
01命令
命令
$ du -h | sort -h -r | head -2002作用说明
默认的 sort 是字典序,会出现 9M 排在 10G 前面——这是经典的错误管道。GNU sort 的 -h 能理解 du -h、df -h、ls -lh 输出的同款人类可读后缀(K、M、G、T 及小数点),-n 则处理纯数字,并用 -k 选择按哪一列排序。没有 -h 时你得先把大小换算成字节,而这正是该选项帮你省掉的步骤。
03风险
!注意: -h 是 GNU 扩展,BSD 的 sort 没有;混合文本若要按字节精确排序还需 LC_ALL=C。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- sort(1) — Arch Linux manual依据: -h, --human-numeric-sort compares human-readable numbers (e.g. 2K 1G); -n numeric; -r reverse; -t/-k field options
- sort(1P) — POSIX manual page依据: POSIX documents -n numeric comparison and key selection via -k
最后验证: 2026-09-17 · 分类: 文件与文件夹