linux本身不带图形化磁盘分析界面,df和du仅输出文本数据,按后缀归类统计需find+du+awk组合实现,ncdu仅支持交互式目录浏览、不支持自动后缀分组,图形化必须依赖第三方工具或导出后用外部软件处理。

直接说结论:Linux 本身不带图形化磁盘分析界面,df 和 du 只能输出文本数据,归类统计需手动组合命令,图形化必须依赖第三方工具或导出后用外部软件处理。
怎么用 du 按文件类型/后缀做归类统计
系统没内置按扩展名汇总的功能,得靠 find + du 配合 awk 或 sort 实现。关键点是别漏掉隐藏文件、别被符号链接干扰:
-
find /var/log -type f -name "*.log" -exec du -ch {} + | grep total$—— 统计所有.log文件总大小,-c加总计行 -
find /home -type f | awk -F. '{if (NF>1) print $NF}' | sort | uniq -c | sort -nr—— 先提取所有文件后缀,再计数,能看出哪些类型最多(但不反映体积) - 真正按体积归类要用
du -h输出路径,再用awk提取后缀:du -h /opt | awk -F/ '{print $NF}' | awk -F. 'NF>1 {print $NF}' | sort | uniq -c | sort -nr—— 这样只能粗略看,精度受限于路径分割逻辑 - 更稳的做法是先用
find获取完整路径,再用awk处理:find /data -type f -exec file --mime-type {} \; 2>/dev/null | awk -F: '{print $2}' | tr -d ' ' | sort | uniq -c | sort -nr—— 借用file命令识别 MIME 类型,比后缀可靠,但慢且依赖file数据库
ncdu 能不能直接分类显示
ncdu 本身不支持按扩展名或类型自动分组,它只按目录树结构展示,但交互式操作能快速定位大目录,再进去人工判断内容构成。容易忽略的点:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 启动时加
-r参数才能递归扫描子目录:ncdu -r /var,否则默认只扫一层 - 进入目录后按
g键可按大小排序,但无法按文件名规则过滤,比如看不到所有.tmp文件集中在哪 - 按
a键可切换显示隐藏文件,否则.cache这类目录直接被跳过 - 如果扫描路径下有大量小文件(如日志轮转碎片),
ncdu初始化会卡住几秒甚至分钟,不是挂了,是正在构建索引
有没有轻量级图形化方案(不装桌面环境)
纯终端里没有“图形”,但可用浏览器打开本地生成的 HTML 报告,这是最实用的折中方案:
-
gdiskusage已停更,不推荐;baobab(GNOME 磁盘使用分析器)必须跑在桌面会话里,SSH 连上去打不开 - 真正可行的是
pydf(彩色增强版df)和duc(支持 Web UI),但duc需要 Python + Flask,部署成本高 - 最简路径:用
du -sh * | sort -hr > report.txt导出文本,再用 Python 快速转成饼图:python3 -c "import pandas as pd, matplotlib.pyplot as plt; df=pd.read_csv('report.txt', sep=r'\s+', names=['size','path']); df.head(10).plot.pie(y='size'); plt.savefig('disk.png')"—— 依赖pandas和matplotlib,服务器未必装了 - 零依赖替代:用
du -h --max-depth=1 / | grep -E '^[0-9.]+[MG]' | head -20提取前 20 个大目录,粘贴到 Excel 或 Google Sheets 里手动画图 —— 看似土,实测最快
归类统计的本质是把非结构化文件路径转为结构化维度,Linux 命令链天然不适合这事;图形化永远卡在“导出 → 外部渲染”这一步,没人绕得开。真正省事的方式,是提前用 logrotate 控制日志、用 tmpwatch 清临时文件——让问题不出现在排查环节。










