TimeMachine 我觉得是世界上最简单最无脑的备份方式,但你知道他背后是用什么样的文件管理来做到他的备份模式吗?
先简单回顾一下,Time Machine 会帮你的电脑整台机器备份(扣除垃圾桶、快取、暂存档、Spotlight index),然后之后每次备份的时候,就只会备份新的文件,所以只有第一次要备份很久,之后都很快就结束。
比如说你的 Mac 是 256G 的容量用了 200G,只有第一次会备份 200G 花你一个小时,之后可能都是1G、2G 只需要备份五分钟。 所以一个 500G 的外接硬盘,可以备份你两个月左右的时间,而不是只能备份两次。
如果你跟我一样很懒惰,想要找回资料的时候不会进入 Time Machine 的界面,会发现他的备份都照着时间排好,找到想要的时间点,然后依照文件夹的位置把文件拉回即可。

好,问题来了。
如果每一次备份都只是备份新增的文件,为什么每个时间点进去都可以看到完整的整个系统呢?
▼ 聪明如你一定会想到,那就是替身嘛。 我们平常只要对文件按下右键,就可以制作一个替身,放在桌面上,快速连结到常用的文件夹等等。

▼ 的确,平常我们使用的替身(Windows叫捷径),的确是一个很接近的答案。 不过你有没有发现,替身的文件夹上面都有一个小小的黑色箭头,告诉你他只是一个替身。

▼ 而 TimeMachine 的文件夹中,只有最新的那一份有替身的标示。

其实,对 Mac 来说,文件的链接共有三种,替身只不过是其中一种。 但真要介绍的话篇幅太长,所以以下就简单介绍三种的分别
1. Aliases:
就是替身,有连接性,原始文件改名或位置动了(至少要在同磁区)还是连接的到。 算是最简单的链接法,所以在右键菜单中就可以使用。
2. Symbolic links
只能用终端机做,原始档动了就坏了,但占的空间更小
3. Hard links
这个也只能使用终端机操作,这个概念比较特别,我们要把它想成是一个进入点,每个文件都只是入口,实际指向磁盘中真实储存的位置。 而 Time Machine 就是使用这个
很难理解吧,我想到一个很好的比喻。
▼ 我们在剪辑视频的时候,有很多素材,但我们在 iMovie 计划案中,一个素材在短片中重复出现,会因此增加磁盘使用量吗。 并不会,因为他只是显示我们用了很多次,实际上都是指向那个原始素材。 直到汇入新的素材,才会增加使用容量。

(当然等输出视频之后视频长度会影响容量,但这就跟这次的比喻无关了。 )
说到这个,有没有想到另一个概念很类似的例子呢?
苹果在去年10.13的发布会demo上,秀了一手在APFS磁区中一秒复制10G文件的魔法。 其实就是非常接近的概念。
▼ 在苹果的开发者手册中,可以看到像下面的图说。

我们使用的 Keynote 文件都是指向 SSD 中真实存储的磁区,当我们修改时会另外增加一个蓝色的存储位置。 这样当我们要复制时,也只不过是新增一个指向绿色位置的项目而已。 所以使用容量并不会增加,当然就可以一秒复制。
不过,不知道是不是概念重复的原因,APFS 中已经不能使用 Hard Link,这我不清楚实际原因。
但你可能有注意到 Time Machine 的硬盘只能使用旧的日志式,而不能使用 APFS 格式的硬盘来做为 Time Machine 备份碟。 APFS 不能使用 Hard Link 绝对是其中一个原因。
所以现在你对 Time Machine 有没有更了解了呢? 你看到的文件,全部都只是幻影旅团的轻薄假象,对应上磁盘上真实的磁区位置而已。