使用命令行批量移除多余的 Homebrew 软件包

作者:袖梨 2026-06-20
批量清理Homebrew软件包的核心步骤是:先用brew list筛选出待删包(如node@16、firefox等),再通过xargs或--dry-run预览后批量卸载;接着用brew rmtree清理独占依赖;最后执行brew cleanup删除旧版本和缓存。

想批量清理 Homebrew 安装的软件包,核心思路是:先明确要删哪些,再用命令批量执行,避免逐个敲命令。关键是别误删正在用的工具,也别漏掉依赖项。

快速列出所有已安装包并筛选出“不必要”的

运行 brew list 可看到全部已安装公式(formula)和应用(cask)。但直接删所有并不安全——比如 git、curl 这类基础工具可能被其他脚本依赖。建议先按用途分类:

  • 开发相关但不用了的:比如旧版 node@16、[email protected]、rust、scala 等
  • 图形界面应用:如 firefox、vlc、obs、inkscape(这些通常用 brew install --cask 安装)
  • 临时测试工具:比如 httpie、jq、fzf(如果确认没在脚本或 alias 中调用)

可加过滤查看,例如:
brew list | grep -E "(node|python|rust|firefox|vlc)"

用 xargs 批量卸载指定列表

确认好要删的包名后,最稳妥的方式是把它们列成一行,用 xargs 交给 brew uninstall 处理:

  • 一次性卸载多个 formula:
    brew list | grep -E "^(node|python|rust)$" | xargs brew uninstall
  • 卸载多个 cask 应用:
    brew list --cask | grep -E "^(firefox|vlc|obs)$" | xargs brew uninstall --cask
  • 更保险的做法:先用 --dry-run 预览(Homebrew 4.0+ 支持):
    brew uninstall --dry-run node@16 [email protected] rust

连带清理残留依赖(推荐搭配 rmtree)

普通 brew uninstall 不会自动删掉只被刚卸载包使用的依赖,容易堆积。装上 brew-rmtree 后,能智能识别并清理:

  • 安装:
    brew tap beeftornado/rmtree && brew install rmtree
  • 卸载主包 + 清理独占依赖:
    brew rmtree node@16
  • 预览不执行:
    brew rmtree --dry-run node@16

注意:brew rmtree 不会动被其他包共用的依赖,安全性比 --force 高得多。

最后做一次全局瘦身

卸载完一批包后,顺手清掉旧版本和缓存,释放空间:

  • 删所有软件的旧版本(保留当前激活版):
    brew cleanup
  • 只清理某一个包的旧版:
    brew cleanup [email protected]
  • 清空下载缓存(.tar.gz 归档):
    rm -rf $(brew --cache)

不复杂但容易忽略。

相关文章

精彩推荐