macos开发环境迁移需分离配置与软件:配置文件(如.zshrc、.gitconfig、plist等)用rsync快照备份并版本化;软件清单通过brewfile和mas list管理;系统级设置依赖time machine备份,确保wi-fi密码、tcc权限等完整恢复。
macos 开发环境迁移的关键,是把“人写的配置”和“机器装的软件”分开处理——配置文件要可版本化、可追溯、可单点恢复,而不是依赖全盘镜像。
哪些配置文件值得备份
终端和编辑器行为、命令行工具偏好、网络与安全设置,这些都藏在用户目录下,能用终端直接复制:
- Shell 配置:~/.zshrc、~/.zprofile、~/.bash_profile(含 PATH、别名、函数)
- Git 与 SSH:~/.gitconfig、~/.ssh/config(含私钥需加密处理)、~/.gitignore_global
- 终端与 Dock 偏好:~/Library/Preferences/com.apple.Terminal.plist、com.apple.Dock.plist
- iTerm2 / VS Code / JetBrains 设置:对应 plist 或 settings.json、workspace.json 等元数据文件
- 网络关键配置:/Library/Preferences/SystemConfiguration/{preferences,NetworkInterfaces,com.apple.airport.preferences}.plist(需 sudo 权限)
用 rsync 打快照,带时间戳不占空间
比简单 cp 更可靠:保留符号链接、权限、硬链接去重,多份备份只存差异。
运行以下命令生成带时间戳的快照目录:
BACKUP_DIR="config-$(date +%Y%m%d-%H%M%S)"; mkdir -p "$BACKUP_DIR"
rsync -avh --delete \
~/.zshrc ~/.zprofile ~/.gitconfig ~/.ssh/config \
~/Library/Preferences/{com.apple.Terminal,com.apple.Dock,com.googlecode.iterm2}.plist \
"$BACKUP_DIR/"
加 --link-dest 可复用前一个快照做硬链接,长期保存几十个版本也只占一份体积。
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
用 Brewfile + mas list 管理软件清单
Homebrew 和 Mac App Store 应用不用备份二进制,只记“装了什么”和“怎么装”:
- 生成 Brewfile:
brew bundle dump --file=Brewfile - 导出 MAS 应用:
mas list > mas-installed.txt(先mas signin) - 把这两个文件提交到 Git 仓库——每次新增工具就是一次 commit,清楚知道哪天加了 rust-analyzer 或 Raycast
- 恢复时:
brew bundle install+mas install $(cat mas-installed.txt | awk '{print $1}')
网络与系统级设置靠 Time Machine 牵头
Wi-Fi 密码、TCC 权限、钥匙串凭据、LaunchAgents、Docker Desktop 的 VM 状态……这些无法用脚本完整还原,必须靠 Time Machine。
建议:
- 外置盘格式为 APFS,容量 ≥ 当前磁盘使用量的 1.5 倍
- 在 Time Machine 选项中排除
~/Library/Caches、~/Downloads、~/Library/Developer/Xcode/DerivedData等临时路径 - 新 Mac 开机设置时,在“传输或还原”界面选 Time Machine 备份,勾选“系统与网络设置”,Dock、快捷键、Wi-Fi 密码、Safari 标签组都会自动同步
不复杂但容易忽略:配置迁移不是追求“一键全包”,而是让每类资产有独立备份路径、可验证恢复逻辑、可选择性回退。这样换 M4 Mac 或重装系统时,两小时就能回到熟悉的工作流。










