用迁移助理换新 Mac 前该清理什么
用迁移助理把数据从旧 Mac 搬到新 Mac 之前,先清掉新 Mac 反正也会自己重建的东西,App 缓存、废纸篓、Xcode 的 DerivedData 和其他能重新生成的构建产物都在这一类,而可能是唯一一份的东西要留着,没在别处确认过的 iPhone 和 iPad 备份,邮件、聊天记录、笔记库、项目文件夹这类 App 数据,还有你说不清是什么的文件夹,最后再拿要搬的总量和新 Mac 的可用空间对一下。
道理很简单,迁移助理是把你的用户账户整个搬过去的,一个用了好几年的账户,大头往往是第一天根本用不上的东西,它多复制一 GB 缓存,传输就多花一 GB 的时间,新 Mac 也就多存一 GB,或者再重建一遍。
迁移助理会复制什么
Apple 的迁移助理说明写的是它会传输文稿、App、用户账户和设置,开始前会先计算应用程序、用户账户、文件、文件夹和设置各占多少空间。新 Mac 上打开「应用程序」›「实用工具」›「迁移助理」,选「从 Mac、时间机器或启动磁盘」,旧 Mac 上选「至另一台 Mac」,每个类别都有勾选框,也可以展开类别只挑其中几项。
它不会删除旧 Mac 上的任何东西,所以在你确认没问题之前,旧 Mac 一直是一份完整的退路。
Apple 没有公布账户里哪些文件夹会被跳过,稳妥的做法是按整个个人文件夹都会被带过去来准备,包括 ~/Library,大部分缓存、App 支持数据和设备备份都在这里,也正是一个账户里多年来悄悄变大的那部分。
还有两条和时间有关的提醒。Apple 说数据量很大时可能需要几小时才能完成,中途偶尔看起来像卡住了;两台 Mac 上如果在用杀毒、防火墙或 VPN 软件,传完之前先关掉。新 Mac 上已经有同名账户的话,迁移助理会让你选择替换它,或者给搬过来的账户改个名,这一点最好开始前就想好。
为什么残留会让搬家更慢、新 Mac 更满
浪费的空间大多来自三类数据:
| 是什么 | 通常在哪 | 为什么划不来 |
|---|---|---|
| App 和浏览器缓存 | ~/Library/Caches,以及 Application Support、Containers 里的缓存文件夹 |
原样复制过去,新版本的 App 多半还会重新生成一遍 |
| 开发构建产物 | ~/Library/Developer/Xcode/DerivedData,项目里的 build、dist、target、.next |
体积大、小文件多,还和旧机器的工具链绑在一起 |
| 已删 App 的残留 | ~/Library/Application Support、~/Library/Containers、~/Library/Preferences |
早就不用的 App 的数据,跟着进了一台干净的新 Mac |
这些东西搬过去对新 Mac 没有任何帮助,新 Mac 一开机 Library 里就已经躺着这些残留,和大多数人换新电脑的初衷正好相反。
废纸篓是第四种情况,里面的文件在清空之前都还在磁盘上,所以量账户大小之前先把它清空。
清理之前先量一下
在旧 Mac 上打开苹果菜单 ›「系统设置」›「通用」›「储存空间」,先看 Apple 储存空间说明里介绍的那个总览。想具体看自己账户的占用,可以用几条只读命令:
du -sh ~ 2>/dev/null
du -sh ~/Library/Caches ~/Library/Developer ~/Library/Application\ Support/MobileSync 2>/dev/null
受保护的文件夹可能会报权限错误,那只说明终端没有访问权限,不代表文件夹是空的。磁盘地图比一串数字好读,两种办法见在 Mac 上查找大文件。
可以先清掉的
下面这些要么会自己重建,要么本来就是副本:
- 废纸篓。 翻一遍再清空,清不掉的话见 Mac 废纸篓清不掉。
- App 缓存。 先退出 App,再只清它的缓存文件夹,怎么分辨真缓存和只是看起来像缓存的数据,见哪些 Mac 缓存可以安全删除。
- Xcode 的 DerivedData 和模拟器残留。 下次构建 Xcode 会重新生成 DerivedData,
~/Library/Developer里还有哪些能删、哪些要留,见清理 Xcode。 - 项目构建产物,比如能从源码一条命令重新构建的项目里的
build、dist、target、.next。 - 装过的安装包,比如下载文件夹里的旧
.dmg,见DMG 文件能不能删。
npm、pip、Homebrew 下载这类包管理器缓存要自己权衡,它们能重新下载,但新 Mac 上第一次安装时就得全部重新拉一遍,网速慢就留着,体积很大而且打算在新 Mac 上重新装一遍工具的话,清掉也没问题,每一种的具体做法见清理开发缓存。
要留着,或者有意识地搬
iPhone 和 iPad 备份。 它们在 ~/Library/Application Support/MobileSync/Backup,可能非常大,一份备份可能就是某台手机唯一的完整副本,别只为了让传输小一点就删掉。想把它从旧 Mac 上拿走的话,先确认设备在 iCloud 里有更新的备份,或者需要的那个恢复点已经归档,然后在访达的「管理备份」里按整套删除,不要去删备份里的单个文件,具体步骤见删除 Mac 上的 iPhone 备份。
不是缓存的 App 数据。 邮件和信息的数据库、聊天记录、笔记和照片图库、密码管理器的保险库、虚拟机、项目文件夹都是数据,哪怕它们放在 ~/Library 里。数据存在服务器上的 App,可能在新 Mac 上登录一下就回来了,但删本地之前先确认这一点。
认不出来的东西。 迁移助理多复制一个不认识的文件夹,代价是一点时间,删掉它的代价可能是找不回来的东西。先留着,到新 Mac 上用一段时间,知道自己真正用什么之后再处理。
看一眼新 Mac 的空间
开始之前,在新 Mac 上打开「系统设置」›「通用」›「储存空间」,记下可用空间,迁移助理算完之后会显示每个类别要占多少。总量接近新 Mac 的剩余空间时,要么回旧 Mac 再清一些,要么取消勾选某个类别或项目,之后再手动拷。一台从第一天起就快满的 Mac,留给系统更新和缓存的余地也就少了。
想彻底干净一点的话,也可以把新 Mac 当成全新的来设置,只拷文稿和确实需要的 App 数据,手动的活多一些,但旧缓存和残留一样都带不过去。
Mole 在这件事里能做什么
Mole 的「清理」适合做旧 Mac 上「先清掉」那一步,一次扫完 App 缓存、开发工具和废纸篓,每一行都先给你看过再删:
- 「开发工具」会列出 Xcode DerivedData 的各个部分,还有一个默认勾选的「已删除项目的 Xcode 数据」,对应的是项目文件夹已经不存在的 DerivedData。它找到的项目构建文件夹,比如
target、dist、.next,会单独列出来,需要你自己勾选。 - npm 的
_cacache、Yarn、pnpm、Conda 包这类包缓存会列出来但默认不勾,因为下次安装还得重新下载。 - 「废纸篓」会永久清空废纸篓,所以先自己翻一遍。
- iPhone 和 iPad 备份出现在「手动管理」里,带着上次备份的日期,只用来让你看见占用,「清理」既不会勾选也不会删除它们,这个决定留给你在访达里做。
它的「分析」视图就是量空间那一步用的磁盘地图。真正的迁移由 Apple 的迁移助理完成,不在 Mole 里。
搬完之后检查一遍
在新 Mac 上把最常用的 App 都打开看看数据到没到,邮件、信息、笔记、密码管理器,还有要紧的项目。旧 Mac 先别动,它还是一份完整的副本。用着用着缓存会重新长出来,这很正常,不代表之前清理失败了。
常见问题
迁移助理从旧 Mac 到新 Mac 会传哪些东西?
Apple 说它会传输文稿、App、用户账户和设置,你可以取消勾选整个类别,也可以展开类别只挑其中几项,它不会删除旧 Mac 上的任何内容。
用迁移助理之前要不要先删缓存?
先清 App 缓存、Xcode DerivedData 和废纸篓是安全的,传输量也会变小,新 Mac 需要时会重建缓存。清某个 App 的缓存前先退出它,也别把 App 数据或设备备份当成缓存。
迁移助理会复制 iPhone 备份吗?
Apple 没有公布会跳过哪些文件夹,所以按整个个人文件夹都会被搬过去来准备,其中包括 ~/Library/Application Support/MobileSync/Backup。没确认别处有更新的备份之前,留着它。
Mac 到 Mac 传数据要多久?
Apple 说数据量很大时可能需要几小时,中途还可能看起来像停住了。你能控制的是少搬几 GB,所以先清缓存和构建产物有帮助。
新 Mac 空间不够怎么办?
回旧 Mac 再清一些,或者在迁移助理里取消勾选某些类别或项目,之后再手动拷。开始前,拿迁移助理算出来的大小和「系统设置」›「通用」›「储存空间」里的可用空间比一比。