V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tw93
V2EX  ›  分享创造

写了一个 Mac 清理工具 Mole,看看你能清理出多少 GB?

  •  4
     
  •   tw93 ·
    Tw93 · 24 天前 · 5452 次点击

    Mole - 像鼹鼠一样深入挖掘来清理您的 Mac

    最近 Mac 存储空间有点受限,用了好几个工具效果都不好,然后自己简单写了一个 Shell ,一下子居然清理了几十个 G 无用空间,把其中一些思路抽成这个工具,取名叫做 Mole 。

    Mole 鼹鼠是一种小小的掘地生物,前肢力气非常大,刨土在打隧道找东西非常厉害,这个工具可以像鼹鼠一样深入挖掘来清理您的 Mac 。

    假如小伙伴需要给电脑做个大扫除,可以试试,也支持了可以把软件卸载得非常干净的功能,很好奇你可以清理出来多少 GB ?

    使用地址:https://github.com/tw93/mole

    清理内容和功能

    • 深度系统清理:缓存、日志、临时文件、垃圾桶
    • 浏览器缓存清理:支持 Safari / Chrome / Arc / Firefox 等
    • 开发者环境清理:Xcode Derived Data 、Node.js 、npm 、pip 、Docker 、Homebrew 等
    • 常用应用缓存清理:Slack 、Discord 、JetBrains 、VS Code 、Notion 等
    • Dry-run 模式:预览将要删除的内容,不实际执行
    • 白名单机制:支持自定义目录保护,避免误删关键缓存

    卸载内容和功能

    • 应用主程序卸载:删除 /Applications/App.app
    • 应用支持文件清理:~/Library/Application Support/AppName
    • 缓存文件清理:~/Library/Caches/com.company.app
    • 偏好设置清理:~/Library/Preferences/com.app.plist
    • 日志与崩溃报告清理:~/Library/Logs/AppName
    • 沙盒容器数据清理:~/Library/Containers/com.app.id
    • 多选卸载:支持批量选择应用卸载
    • 卸载统计:展示已删除应用数量和释放的空间大小

    常见问题

    1. 会误删重要文件吗?不会。Mole 内置保护机制,会跳过系统关键文件。
    2. 清理操作能撤销吗?缓存文件删除后可自动生成,一般无需担心。
    3. 多久运行一次比较合适?一个月一次即可,或者磁盘紧张时使用。
    4. 安全吗?安全,支持 --dry-run 预览模式,执行前会列出要删除的内容。

    最后

    由于是一个小工具,只花了 2 天左右时间整的,假如你有任何建议,欢迎告诉我加上去,然后假如你发现这个工具帮你清理了很多垃圾,哈哈欢迎截图出来,大伙一起看看。

    59 条回复    2025-10-24 14:07:24 +08:00
    SiLenceControL
        1
    SiLenceControL  
       24 天前   ❤️ 1
    已 star
    avenger
        2
    avenger  
       24 天前
    昨晚在 x 上看到就用了,立省 30g ,真不错……
    之前一直用 tecent lemon
    tw93
        3
    tw93  
    OP
       24 天前 via Android
    @avenger 谢谢喜欢
    love4taylor
        4
    love4taylor  
    PRO
       24 天前
    ❯ brew install tw93/tap/mole
    ==> Fetching downloads for: mole
    ==> Fetching tw93/tap/mole
    ==> Downloading https://github.com/tw93/Mole/archive/refs/tags/V1.4.0.tar.gz
    curl: (56) The requested URL returned error: 404

    Error: mole: Failed to download resource "mole (1.4.0)"
    Download failed: https://github.com/tw93/Mole/archive/refs/tags/V1.4.0.tar.gz
    ==> No outdated dependents to upgrade!

    ~ took 3s
    tw93
        5
    tw93  
    OP
       24 天前
    @love4taylor 抱歉 我的锅 tag 我重新更新了一下,你试试,现在是 1.4.1
    geminikingfall
        6
    geminikingfall  
       24 天前
    感觉有点厉害的。
    cinhoo
        7
    cinhoo  
       24 天前
    --dry-run 模式下
    Developer tools cache 好像还是被清理掉了?
    tw93
        8
    tw93  
    OP
       23 天前 via Android
    @cinhoo 嗯嗯 我比较强迫症 你可以加上这个白名单 文档有个说明
    ssh
        9
    ssh  
       23 天前
    如果能搞个微信重复聊天文件清理就更赞了(根据文件 md5 或者其他特征判断重复,删掉之后创建软连接指向独一份的文件)
    tw93
        10
    tw93  
    OP
       23 天前
    @ssh 哈哈 想起前端时候对微信的吐槽来了,这个会有些自定义,我建议是 微信只保留关键人的聊天信息,其他的直接删就好
    followad
        11
    followad  
       23 天前 via iPhone
    我来试试 哥们
    tw93
        12
    tw93  
    OP
       23 天前
    @followad 看看可以清理多少
    xiaket
        13
    xiaket  
       23 天前   ❤️ 1
    挺好用, 谢谢!
    love4taylor
        14
    love4taylor  
    PRO
       23 天前
    旧菜单还留在屏幕上,新的菜单又在下面重新打印了一份

    ❯ mole --version
    Mole version 1.4.0

    tw93
        15
    tw93  
    OP
       23 天前 via Android
    @love4taylor 你这个终端是什么 我去修复一下
    love4taylor
        16
    love4taylor  
    PRO
       23 天前
    @tw93 Apple Terminal ,fish shell ,但是 shebang 应该不影响,TERM 也是 xterm-256color 没问题。
    lucasji
        17
    lucasji  
       23 天前


    不错不错
    tw93
        18
    tw93  
    OP
       23 天前 via Android
    @lucasji 厉害了
    tw93
        19
    tw93  
    OP
       23 天前 via Android
    @love4taylor 好 那应该是我代码没有处理好 下一个版本修一下
    xiaopanzi
        20
    xiaopanzi  
       23 天前
    很实用 👍
    nah
        21
    nah  
       23 天前
    首先支持。
    涉及文件删除的,我还是保守点。
    你们先用。
    2bad4u
        22
    2bad4u  
       23 天前
    不错不错 正考虑下个柠檬呢 来的真及时
    zieglar
        23
    zieglar  
       23 天前
    虽然但是,我还是再观察一下
    tw93
        24
    tw93  
    OP
       23 天前 via Android
    @zieglar 今日最大
    zieglar
        25
    zieglar  
       23 天前
    @tw93 #24 有些太拿不准了,比如这个 Sandboxed app caches (1520 items) (37.5GB, dry) 还有 User app cache (374 items) (35.3GB, dry)
    Helsing
        26
    Helsing  
       23 天前 via iPhone
    ~/.gradle 排除了也还是被清除了
    tw93
        27
    tw93  
    OP
       23 天前 via Android
    @Helsing mole clean --whitelist 看看在里面不
    deplives
        28
    deplives  
       23 天前   ❤️ 2
    慎用,清理完 DataGrip 保存的 data source 全没了,淦
    deplives
        29
    deplives  
       23 天前   ❤️ 4


    真的是是服了,几百个 data source 现在一个不剩,好多密码都根部不记得了,淦
    tw93
        30
    tw93  
    OP
       23 天前
    @deplives #28 非常抱歉,JetBrains 的配置文件夹是 JetBrains (没有 com. 前缀),我已经把 JetBrains 文件夹的特殊保护,同时保护其他数据库工具的配置文件夹这个能力给加上了
    Dreamful
        31
    Dreamful  
       23 天前   ❤️ 1
    @deplives #29 哈哈哈哥们好样的,我先不用了
    arrebol42
        32
    arrebol42  
       23 天前
    在用一个类似的工具 mac-cleanup 。

    https://github.com/mac-cleanup/mac-cleanup-sh

    对比了一下清理的大文件,mole 把缓存的 huggingface 模型文件给清理了~
    tw93
        33
    tw93  
    OP
       23 天前
    @arrebol42 谢谢反馈,我已经把 HuggingFace 缓存到默认白名单中,下一个版本发布
    PatrickAtMoon
        34
    PatrickAtMoon  
       23 天前
    感谢作者,请问有没有办法添加自定义一些清理模式呢
    tw93
        35
    tw93  
    OP
       23 天前
    @PatrickAtMoon 正在写这个工具,我会基于 dry-run 的预览模式出一个白名单模式,可以让用户主动选中哪些可以不被清除
    ryh
        36
    ryh  
       23 天前
    😂 application states 和 spotlight 的才多大,居然也放入默认删除的列表
    1OF7G
        37
    1OF7G  
       23 天前
    替作者感谢上面的小白鼠做出的牺牲。

    不想做小白鼠的还是再观望观望吧!
    avenger
        38
    avenger  
       23 天前 via iPhone
    反馈一个
    github desktop 客户端的配置好像也会被清除
    tw93
        39
    tw93  
    OP
       23 天前
    @ryh application states 这个我计划放出好了,之前写了不少白名单机制,更好就是不删除好了
    murongxdb
        40
    murongxdb  
       23 天前
    正好需要
    deplives
        41
    deplives  
       23 天前   ❤️ 4
    @tw93 #30 我现在真的想干死你,妈的整了一晚上,找回来了 30 多个,剩下的完全找不回来。还有一大堆需要改 drive 配置的链接根本不记得改的啥,都几年前的配置了。真的是服了 op 了,就是太相信网友
    YsHaNg
        42
    YsHaNg  
       23 天前
    妈耶 看评论有点危险 我还是先继续 brew zap 吧
    8520ccc
        43
    8520ccc  
       23 天前
    这种白名单模式的很危险呀 op 根本不可能维护一个完善的白名单的 难免出现遗漏 很有可能会对用户的数据造成损失。。。考虑一下 保守模式吧 不然不可避免的需要一次次的试错 来完善这个白名单。。。
    Ccf
        44
    Ccf  
       23 天前
    观望一下,没有 gui 不用
    tw93
        45
    tw93  
    OP
       23 天前
    @8520ccc 谢谢建议,我已经修改了,发布了 1.5 版本,把原本配置孤岛这个逻辑干掉了(正常而言,是用于删除已经卸载的软件的残留的配置文件,结果有些软件没有按照规范来命名,我没有考虑到这种情况),不过这里本来也不大,就先不做这个了,的确有些危险,对之前的小白用户说声抱歉。
    tw93
        46
    tw93  
    OP
       23 天前
    @avenger #38 谢谢反馈,这个我在 1.5 版本修正了
    iFrey
        47
    iFrey  
    PRO
       23 天前
    已 star ,使用了一下,感觉良好
    Tomatopotato
        48
    Tomatopotato  
       23 天前
    一点都不敢用这种清理工具,自从快十年前被 CleanMyMac 删除了 QQ 的所有聊天图片,就得了 ptsd 了。 虽然后来 QQ 自己也改成不定期自己删图片了。。。
    dreamage
        49
    dreamage  
       22 天前
    今天 gh daily 推荐了 巧了么不是
    4ever911
        50
    4ever911  
       19 天前
    为什么不在清理之前给一个清单,再让用户确认执行。
    Helsing
        51
    Helsing  
       18 天前
    @tw93 #27
    在里面
    tw93
        52
    tw93  
    OP
       15 天前
    @4ever911 co clean --whitelist 后面更新了很多版本,慢慢稳定拉
    miaoxiaomayi
        53
    miaoxiaomayi  
       5 天前
    应用卸载列表里有几个我在访达找不到的 app 。 一个叫。daiti 。不知道这是什么 能不能卸载
    tw93
        54
    tw93  
    OP
       4 天前
    @miaoxiaomayi 可以点击下一步,去看路径,最终删除会找你确认
    miaoxiaomayi
        55
    miaoxiaomayi  
       4 天前 via iPhone
    @tw93 okok 我去看看。大家都没有这个东西的话。那就说明这不是系统安装的,删掉也没事吧
    miaoxiaomayi
        56
    miaoxiaomayi  
       4 天前
    @tw93Continue? Press Enter to proceed, or q/ESC to cancel: 这是下一步的提示
    miaoxiaomayi
        57
    miaoxiaomayi  
       4 天前
    还有就是为什么我输入 mo ,然后按下键,菜单会突然办成三个
    miaoxiaomayi
        58
    miaoxiaomayi  
       4 天前
    哦哦 更新后就好了
    tw93
        59
    tw93  
    OP
       3 天前
    @miaoxiaomayi #58 哈哈 好的,有问题可以反馈 issue
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5519 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:22 · PVG 09:22 · LAX 18:22 · JFK 21:22
    ♥ Do have faith in what you're doing.