卸载 Mac 应用后,~/Library/Library、Homebrew 等目录中常残留大量缓存、配置和失效启动项。本文提供一套系统化的清理方案,覆盖用户级和系统级路径,附带交叉验证逻辑与安全审批流程。

清理约束

  • 不动 DownloadsDesktopDocuments
  • 不删除正在使用的软件主数据,优先清理残留、缓存、日志、安装包工件、失效启动项
  • 操作分两步:先出审批表,确认后再执行删除

扫描范围

用户级

~/Library/
  Containers、Group Containers、Application Scripts
  Application Support、Preferences、Caches
  WebKit、HTTPStorages、Saved Application State、Biome

~/.cache/          ← 大型工具运行时/编译缓存常在此
~/.config/         ← XDG 规范工具配置,卸载后常残留
~/.local/share/    ← XDG 数据目录
~/(根目录隐藏 dotfiles)← .android .putty 等工具遗留

系统级

/Library/
  LaunchAgents、LaunchDaemons、PrivilegedHelperTools
  Extensions、SystemExtensions、Application Support、Preferences

Homebrew

/opt/homebrew/Caskroom/              ← 多版本遗留及孤儿条目
~/Library/Caches/Homebrew/downloads/ ← 安装包缓存

交叉验证逻辑

  1. ls /Applications ~/Applications + brew list --cask 建立已安装 App 清单
  2. 扫描上述路径时,对每条记录比对清单:找不到对应 App 的即为候选残留
  3. 对模糊项(如系统框架插件、SDK 组件)进一步用 mdfind / kextstat 确认后再归类

审批表格式

A 类 — 已卸载应用真实残留

编号路径大小来源 App风险是否影响在用软件

B 类 — 可再生大型缓存

在用 App 产生,删后可自动重建。

编号路径大小用途清理方式风险

C 类 — 后台持久化审查

编号路径对应 AppKeepAliveRunAtLoad建议

执行要求

  • 非 sudo 项:确认后直接执行
  • 需要 sudo 的项:以 sudo <命令> 格式提供,手动粘贴执行
  • 删除完成后对比「清理前 → 清理后」磁盘可用空间,以及各类合计释放量

实用命令速查

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 查看已安装 Cask
brew list --cask

# 搜索某 App 的所有残留文件
mdfind "kMDItemFSName == 'AppName*'" -onlyin ~

# 查看 LaunchAgent/Daemon
ls ~/Library/LaunchAgents/
ls /Library/LaunchAgents/
ls /Library/LaunchDaemons/

# 查看磁盘可用空间
df -h /