Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

linux-junk-cleaner 🧹

Linux 磁盘垃圾清理工具 —— 树状结构扫描,专为配合 AI 定位并清理垃圾而设计。

一个零依赖的 Bash 脚本,把「某个目录下到底什么在占空间」渲染成一棵可读的树, 让 AI(或人)从顶层顺藤摸瓜,快速判断垃圾在哪、删掉能释放多少。

✨ 特性

  • 🌳 树状递归下钻:每个超过阈值的目录自动展开,子项按大小降序;低于阈值的折叠成一行 … 另有 N 个小于阈值(合计 X)
  • 🎚️ 阈值即抽象旋钮:支持 K/M/G/T 后缀。调大阈值 = 更粗的抽象(看全局),调小 = 更细(下钻定位)。
  • 🛑 停钻屏蔽词targetnode_modules 等「已知垃圾层」折叠成一整块可删单元,不再展开无意义的子项。
  • 📏 两种大小口径actual(真实占用块,默认,稀疏文件如虚拟机磁盘不虚高)与 apparent(表观大小)。
  • 📊 抽象程度仪表:统计「匹配文件 / 匹配文件夹」数量,一眼判断阈值是否合适。
  • 🔍 隐藏文件纳入、软链接跳过:不漏扫,也不误跟链接。

🚀 快速开始

./scan_tree.sh ~ 1G                        # 扫描家目录,阈值 1G(真实占用)
./scan_tree.sh ~ 1G - apparent             # 表观大小口径
./scan_tree.sh ~ 200M target,node_modules,.venv   # 自定义停钻屏蔽词
./scan_tree.sh ~ 1G -                      # 关闭屏蔽词(全部下钻)

📖 参数

位置 参数 说明 默认值
1 目录 要扫描的目录 .
2 阈值 最小展示大小,支持 K/M/G/T 50M
3 屏蔽词 逗号分隔的「停钻」目录名 target,node_modules,.git,__pycache__,dist,build
4 口径 actual(真实占用)或 apparent(表观) actual

输出示例:

扫描: /home/user    阈值: 1G    口径: actual
停钻屏蔽词: target,node_modules,.git,__pycache__,dist,build(命中目录视为原子单元,不展开)
--------------------------------------------------------------
  203.8G  [目录·停]  /home/user/code/xxx/rust/target
   18.1G  [目录·停]  /home/user/code/yyy/src-tauri/target
   58.8G  [目录]  /home/user/.cache/uv
      ...
--------------------------------------------------------------
匹配文件    : 20 个(大小 ≥ 1G)
匹配文件夹  : 250 个(大小 ≥ 1G)
  其中停钻  : 8 个(命中屏蔽词,未展开)
合计        : 270 个

🤖 配合 AI 使用

把输出直接喂给 AI,让它判断哪些是垃圾、能释放多少:

./scan_tree.sh ~ 1G > tree.txt

然后把 tree.txt 的内容粘给 AI,附上一句:

基于这棵树,列出可安全清理的项、每项能释放多少空间、以及注意事项。

树里每行都带「大小 + 类型 + 完整路径」,AI 能直接定位、估算释放量,甚至生成删除命令。

建议的清理优先级

  1. 先看 [目录·停] 的大块target / node_modules 等构建产物,可再生,最值得删。
  2. 再看 [文件] 大项:单个大文件(磁盘镜像、压缩包、模型权重)通常可直接删。
  3. 最后看 [目录] 容器:顺着最大的继续下钻,直到定位到具体垃圾。

🧠 设计理念

  • 大小单调性剪枝:目录大小 ≥ 其任何后代大小 ⇒「目录低于阈值 ⇒ 内部全低于阈值」,可安全整棵砍掉,这是下钻停止条件,也保证高效。
  • 不是 ncdu 的替代,而是互补ncdu 用于人工交互式浏览;本工具用于产出一次性快照交给 AI 分析。
  • 抽象层可调:阈值 + 停钻屏蔽词共同决定「抽象停留在哪一层」,让输出既不淹没在碎片里,也不粗到看不清。

📦 依赖

仅需标准 GNU 工具:bashduawksortmktemp。无需安装任何第三方软件。

📄 License

MIT

About

Linux 磁盘垃圾清理工具:树状扫描,可配合 AI 定位并清理垃圾 | Tree-structured disk junk scanner for Linux, built to work with AI

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages