macos应用卸载工具(如appcleaner)通过bundle id精准识别应用,扫描~/library/preferences、caches、application support等目录清理残留,跳过系统文件,支持预览与手动勾选,纯客户端静态分析无需后台进程。
macos 应用安装与卸载本身不会自动备份软件数据,但你可以通过组合系统机制和轻量工具,在安装/卸载前后自动捕获关键配置、偏好和数据路径,实现“行为触发式”备份。重点不是备份.app文件本身(它通常可重装),而是那些一删就丢的个性化数据。
备份核心对象:哪些数据真该留?
多数 macOS 应用的数据分散在以下三类位置,需针对性处理:
-
用户级偏好设置:位于
~/Library/Preferences/下的.plist文件(如com.alfredapp.Alfred-Preferences.plist),控制界面、快捷键、工作流等 -
应用专属数据目录:如
~/Library/Application Support/中的子文件夹(Alfred 的Alfred 5、Obsidian 的Obsidian)、~/Library/Caches/(部分缓存可忽略,但有些含索引或同步状态) -
配置文件与脚本:如 Homebrew Cask 安装的 CLI 工具,其配置常在
~/.zshrc、~/.gitconfig或~/.config/下
安装时自动记录与备份配置
借助 Homebrew(含 Cask)+ 自定义脚本,可在安装后立即归档关联配置:
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
- 用
brew tap-new username/tap创建私有 tap,把常用 app 的安装命令 + 对应的备份逻辑(如复制 plist、导出设置)打包成自定义 formula/cask - 在
scripts/install脚本中加入钩子:安装 Alfred 后,自动执行defaults read com.alfredapp.Alfred-Preferences > ~/backups/alfred-prefs-$(date +%Y%m%d).json - 对支持命令行导出的应用(如 Dash、Typora),直接调用
dash-cli export或typora --export-json并保存到云同步目录
卸载前自动抓取残留数据
macOS 没有卸载钩子,但可通过监听文件变动或封装卸载命令来补位:
- 不用直接删 .app,改用封装脚本
safe-uninstall Alfred:先运行rsync -aE ~/Library/Application\ Support/Alfred\ 5/ ~/backups/alfred-data-$(date +%Y%m%d)/,再执行rm -rf /Applications/Alfred.app - 配合
fswatch监听~/Library/Preferences/目录,当检测到某个 plist 被删除(如卸载后自动清理),立刻从最近一次备份中恢复或归档快照 - 对 MAS 应用,使用
mas list和mas uninstall组合,并在卸载前用macprefs export快速打包当前所有偏好,避免误删关联设置
统一管理:用 Mackup 或 stow 做配置中枢
把分散的配置变成可版本化、可重装的结构,让“备份”变成自然副产品:
- 用
mackup管理:执行mackup backup会自动识别并软链接~/Library/Preferences、~/Library/Application Support等目录中已知应用的配置到~/.mackup,再把这个目录 git push 到私有仓库 - 用
stow+ 自建 dotfiles:把 Alfred、VS Code、iTerm2 的配置整理进~/dotfiles/alfred/、~/dotfiles/vscode/,运行stow alfred即完成软链接部署;卸载时只需stow -D alfred,配置仍完整保留在源目录 - 所有备份目标路径建议指向 iCloud Drive 或 Dropbox 子目录(如
~/Library/Mobile Documents/com~apple~CloudDocs/backups/),确保跨设备可用且不依赖本地磁盘










