swapon -s 默认不显示使用率百分比和格式化看板,需用 awk 计算已用/总大小×100%并结合 column 对齐输出 DEVICE、TYPE、SIZE(KB)、USED(KB)、USAGE% 五列,同时处理除零异常。

swapon -s 本身只输出交换区的设备路径、类型(file/partition)、大小和已用空间(单位为 KB),不直接显示使用率百分比,也不支持格式化看板。要获得“包含类型与使用率的精炼统计看板”,需结合其他命令做轻量级处理。
理解 swapon -s 的原始输出
执行 swapon -s 典型输出如下:
/dev/sda2 partition 8388604 0 -2 /swapfile file 4194300 123456 -1
字段依次为:设备/文件路径、类型、总大小(KB)、已用大小(KB)、优先级。使用率需手动计算:已用 ÷ 总大小 × 100%,并四舍五入到整数或保留一位小数更易读。
一行命令生成带使用率的精炼看板
用 awk 处理原始输出,添加“使用率”列并美化对齐:
swapon -s | awk 'NR==1 {printf "%-18s %-10s %-10s %-10s %-8s\n", "DEVICE", "TYPE", "SIZE(KB)", "USED(KB)", "USAGE%"; next}
{pct = $3 == 0 ? 0 : int($4/$3*100+0.5); printf "%-18s %-10s %-10s %-10s %4d%%\n", $1, $2, $3, $4, pct}' | column -t
效果示例:
DEVICE TYPE SIZE(KB) USED(KB) USAGE% /dev/sda2 partition 8388604 0 0% /swapfile file 4194300 123456 3%
补充关键细节提升实用性
- 若某交换区总大小为 0(罕见),
awk中加判断避免除零错误 - 想看实时动态,可搭配
watch -n 2每 2 秒刷新:watch -n 2 'swapon -s | awk ... | column -t' - 仅需快速估算,可用
free -h查总交换用量,但无法区分各 swap 区的类型和归属 - swapfile 类型通常可识别为普通文件路径(含斜杠和扩展名),partition 则多为
/dev/xxx形式,无需额外解析
替代方案:用 findmnt + swapon 组合补全信息
若需确认 swapfile 是否启用、挂载选项或文件系统类型,可补充:
swapon -s | awk 'NR>1 {print $1}' | xargs -r findmnt -Dn 2>/dev/null | awk '{print $1, $7}'
这能辅助验证类型准确性(例如区分 loop 设备或 btrfs subvolume 上的 swapfile),但日常统计中非必需。

















