如何在 Mac 上安全地把大文件移到外置磁盘
占满 Mac 的东西并不都能删。旧项目、已完成的视频作品,以及以后可能还想用的 AI 模型,与其删除,不如放到外置磁盘上。
一句话:先把项目拷贝到磁盘,确认副本一致,然后才把原件移到废纸篓。在“访达”中拖移只会拷贝,不会检查。项目和应用数据请使用 APFS 或 Mac OS 扩展格式的磁盘;普通文件用 exFAT 也可以,FAT32 则无法存放超过 4 GB 的文件。
外置磁盘应该用什么格式?
- APFS:只在 Mac 上使用的磁盘的最佳选择。它会保留一切:符号链接、权限和隐藏文件。“磁盘工具”还可以把它设为加密。
- Mac OS 扩展:较早的 Mac 格式,仍然可用,也是机械硬盘常用的格式。
- exFAT:Windows 也能读取,但它不支持符号链接和硬链接,也不保留文件的执行权限。代码项目和部分模型文件夹(Hugging Face 使用链接)放上去后就不再完整。
- FAT32:无法存放大于 4 GB 的文件。这种用途请避免使用。
要查看磁盘的格式,请在“访达”中选中它,然后选择“文件”›“显示简介”,或者运行:
diskutil info "/Volumes/Studio SSD" | grep "File System Personality"
怎样拷贝文件夹并检查副本?
ditto 拷贝文件夹时会带上 macOS 为其中文件保存的一切信息,diff -rq 则逐个文件、逐个字节地比较两者。diff 没有任何输出,就表示两者一致:
ditto ~/Projects/old-portfolio "/Volumes/Studio SSD/Projects/old-portfolio"
diff -rq ~/Projects/old-portfolio "/Volumes/Studio SSD/Projects/old-portfolio"
对于单个大文件,比较校验和:两行显示的值必须相同。
shasum -a 256 ~/Movies/talk.mov "/Volumes/Studio SSD/Movies/talk.mov"
刚拷贝完时,macOS 可能仍把文件保留在内存中,所以检查读取的可能是内存而不是磁盘。要严格检查,请先推出磁盘,重新连接后再比较。
移动项目之前应该先移除 node_modules 吗?
应该。node_modules、.venv、target、build 等文件夹可以用 npm install、pip install 或一次构建,从项目自己的文件重新生成。不拷贝它们,副本会小得多,也快得多,因为它们包含成千上万个小文件。
可以把 Ollama 模型、Docker 或“照片”图库移到外置磁盘吗?
- Ollama:不要移动单个模型;它的模型之间共享文件。应该让 Ollama 改用磁盘上的一个文件夹,再把模型下载到那里:
OLLAMA_MODELS="/Volumes/Studio SSD/Ollama" ollama serve。 - Docker Desktop:在 Settings › Resources › Advanced › Disk image location 中选择新位置,让 Docker 自己移动它的磁盘。
- 照片:退出“照片”,把图库拖到 APFS 或 Mac OS 扩展格式的磁盘上,然后按住 Option 键打开它。按 Apple 自己的步骤操作,iCloud 照片可以继续正常使用。
- 邮件、应用、模拟器和 iPhone 备份都要求放在 Mac 本身上。让它们留在原处。
如果磁盘坏了或丢了怎么办?
清倒废纸篓后,磁盘上的副本就是唯一的一份。重要的东西请放在两个地方,例如同时用时间机器备份。未加密的磁盘,任何拿到它的人都能读取:要加密磁盘,请在“访达”中按住 Control 键点按它并选择“加密”,或者在“磁盘工具”中将它抹掉为 APFS(加密)格式。