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

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

  •  4
     
  •   tw93 ·
    Tw93 · 6 天前 · 4019 次点击

    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 天左右时间整的,假如你有任何建议,欢迎告诉我加上去,然后假如你发现这个工具帮你清理了很多垃圾,哈哈欢迎截图出来,大伙一起看看。

    51 条回复    2025-10-09 10:20:39 +08:00
    SiLenceControL
        1
    SiLenceControL  
       6 天前   ❤️ 1
    已 star
    avenger
        2
    avenger  
       6 天前
    昨晚在 x 上看到就用了,立省 30g ,真不错……
    之前一直用 tecent lemon
    tw93
        3
    tw93  
    OP
       6 天前 via Android
    @avenger 谢谢喜欢
    love4taylor
        4
    love4taylor  
    PRO
       6 天前
    ❯ 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
       6 天前
    @love4taylor 抱歉 我的锅 tag 我重新更新了一下,你试试,现在是 1.4.1
    geminikingfall
        6
    geminikingfall  
       6 天前
    感觉有点厉害的。
    cinhoo
        7
    cinhoo  
       6 天前
    --dry-run 模式下
    Developer tools cache 好像还是被清理掉了?
    tw93
        8
    tw93  
    OP
       6 天前 via Android
    @cinhoo 嗯嗯 我比较强迫症 你可以加上这个白名单 文档有个说明
    ssh
        9
    ssh  
       6 天前
    如果能搞个微信重复聊天文件清理就更赞了(根据文件 md5 或者其他特征判断重复,删掉之后创建软连接指向独一份的文件)
    tw93
        10
    tw93  
    OP
       6 天前
    @ssh 哈哈 想起前端时候对微信的吐槽来了,这个会有些自定义,我建议是 微信只保留关键人的聊天信息,其他的直接删就好
    followad
        11
    followad  
       6 天前 via iPhone
    我来试试 哥们
    tw93
        12
    tw93  
    OP
       6 天前
    @followad 看看可以清理多少
    xiaket
        13
    xiaket  
       6 天前   ❤️ 1
    挺好用, 谢谢!
    love4taylor
        14
    love4taylor  
    PRO
       6 天前
    旧菜单还留在屏幕上,新的菜单又在下面重新打印了一份

    ❯ mole --version
    Mole version 1.4.0

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


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


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

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

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

    不想做小白鼠的还是再观望观望吧!
    avenger
        38
    avenger  
       6 天前 via iPhone
    反馈一个
    github desktop 客户端的配置好像也会被清除
    tw93
        39
    tw93  
    OP
       6 天前
    @ryh application states 这个我计划放出好了,之前写了不少白名单机制,更好就是不删除好了
    murongxdb
        40
    murongxdb  
       5 天前
    正好需要
    deplives
        41
    deplives  
       5 天前   ❤️ 3
    @tw93 #30 我现在真的想干死你,妈的整了一晚上,找回来了 30 多个,剩下的完全找不回来。还有一大堆需要改 drive 配置的链接根本不记得改的啥,都几年前的配置了。真的是服了 op 了,就是太相信网友
    YsHaNg
        42
    YsHaNg  
       5 天前
    妈耶 看评论有点危险 我还是先继续 brew zap 吧
    8520ccc
        43
    8520ccc  
       5 天前
    这种白名单模式的很危险呀 op 根本不可能维护一个完善的白名单的 难免出现遗漏 很有可能会对用户的数据造成损失。。。考虑一下 保守模式吧 不然不可避免的需要一次次的试错 来完善这个白名单。。。
    Ccf
        44
    Ccf  
       5 天前
    观望一下,没有 gui 不用
    tw93
        45
    tw93  
    OP
       5 天前
    @8520ccc 谢谢建议,我已经修改了,发布了 1.5 版本,把原本配置孤岛这个逻辑干掉了(正常而言,是用于删除已经卸载的软件的残留的配置文件,结果有些软件没有按照规范来命名,我没有考虑到这种情况),不过这里本来也不大,就先不做这个了,的确有些危险,对之前的小白用户说声抱歉。
    tw93
        46
    tw93  
    OP
       5 天前
    @avenger #38 谢谢反馈,这个我在 1.5 版本修正了
    iFrey
        47
    iFrey  
    PRO
       5 天前
    已 star ,使用了一下,感觉良好
    Tomatopotato
        48
    Tomatopotato  
       5 天前
    一点都不敢用这种清理工具,自从快十年前被 CleanMyMac 删除了 QQ 的所有聊天图片,就得了 ptsd 了。 虽然后来 QQ 自己也改成不定期自己删图片了。。。
    dreamage
        49
    dreamage  
       4 天前
    今天 gh daily 推荐了 巧了么不是
    4ever911
        50
    4ever911  
       1 天前
    为什么不在清理之前给一个清单,再让用户确认执行。
    Helsing
        51
    Helsing  
       1 天前
    @tw93 #27
    在里面
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2893 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:51 · PVG 21:51 · LAX 06:51 · JFK 09:51
    ♥ Do have faith in what you're doing.