sort -h:正确排序 1.5K、10M 这类人类可读大小

用 GNU sort 的 -h 选项在 Linux 上对 du/df/ls -lh 的输出按真实大小排序。

Linux文本sort 排序数字低风险
把大小输出通过管道传给 sort -h,即可按 K/M/G 后缀的真实大小排序(加 -r 则从大到小)。

01命令

命令
$ du -h | sort -h -r | head -20

02作用说明

默认的 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
    Arch Linux · technical · 2026-09-17
    依据: -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
    man7.org · technical · 2026-09-17
    依据: POSIX documents -n numeric comparison and key selection via -k

最后验证: 2026-09-17 · 分类: 文件与文件夹

06相关方案