OSX:将 Time Machine 备份转换为常规文件夹

OSX:将 Time Machine 备份转换为常规文件夹

我在外部驱动器上有一个 Time Machine 备份文件夹。我再也不用 Time Machine 了,我只想在 Finder 中访问这些文件,而不受“备份”文件的所有限制。

是否有一个终端命令可以运行,从而授予我删除、移动等所有权限?

答案1

编辑:根据 @Ken Arnold 在另一个回答中的说法,由于 Time Machine 备份被 ACL 锁定,此技术将无法工作。我无法保证这一点,因为我还没有检查过,但在你继续回答这个问题之前,这一点值得注意。:ENDEDIT

通过快速浏览我的 Time Machine 备份,您会发现,您需要做的就是拥有这些文件的所有权。

如果您导航到 Backups.backupdb,您应该会看到一个文件夹,上面写着您的机器名称。如果您使用 cd 进入该文件夹,您将找到一长串文件夹,这些文件夹与 Time Machine 所做的每个备份相对应。

由于 Time Machine 的工作方式,每个文件夹都包含您机器在特定时间点的完整状态。要获得读取/写入等的完整权限,您只需拥有其中一个文件夹的所有权即可。

假设你只想要最新的备份文件夹,OS X 已为其创建了一个符号链接。在这种情况下,命令序列(在我的计算机上使用通用用户名)将是:

cd /Volumes/Backup/Backups.backupdb/Lukasa's\ Macbook\ Pro/
sudo chown -R USERNAME Latest

另一种方法是简单地拥有整个备份历史记录,在这种情况下您可以使用:

cd /Volumes/Backup/Backups.backupdb/
sudo chown -R USERNAME Lukasa's\ Macbook\ Pro

另一种方法是启用 root 帐户然后您就可以随心所欲地摆弄这些文件了。完成后,不要忘记禁用 root 权限,并且出于对一切神圣事物的热爱,永远不要输入rm /

请阅读:

我还没有在自己的 Time Machine 备份上测试过这个功能,因为它目前已经非常广泛,而且我非常喜欢它。但是,Time Machine 备份的性质可能会出现一些问题。在 OS X 中,Time Machine 使用硬链接来重现未更改的文件和目录。这意味着每个文件都包含当时的整个文件系统。但是,OS X 不允许硬链接到 Time Machine 之外的目录。我无法诚实地说这会产生什么影响:可能没有,但我不能排除意外行为。只是一个警告。

答案2

关于 Time Machine 备份,网上有很多错误信息(相比之下,Lukasa 的回答其实相当不错);我已经确定了我认为实际发生的事情,并希望很快发布一些相关内容。但与此同时,请注意两件事:

  1. 不幸的是,Lukasa 的答案不起作用。Time Machine 备份使用 ACL 锁定。您可以清除它们,但随后您必须注意其他警告:

  2. Time Machine 硬链接目录。通常这是你不应该做的事情,因为一个目录中的更改会导致(看起来)某个完全独立的目录中的更改。Time Machine 的结构非常谨慎,可以防止这种情况造成问题,但如果你自己去探索它,你就得靠自己了。

也就是说,应该可以编写一个脚本,用硬链接文件目录替换硬链接目录,这只会占用更多空间。我可能有一天会尝试编写该脚本;如果您对此感兴趣,请对问题和答案点赞。(或者一些 SU 管理员告诉我人们应该以正确的方式提出此类请求。)

编辑 2011-07-26:HFS+ 上的硬链接非常难看。它们实际上存储在神奇的地方,而一些简单的事情(比如移动它们)在 ext3 上完全没问题,但在 HFS+ 上却出乎意料地失败了。而且事实证明,删除文件的最后一个硬链接也不会将其恢复为正常文件。我引用的脚本最终看起来应该是这样的:复制每个文件,删除原始文件。真恶心,但这实际上是我现在用旧的 Time Machine 备份所做的。如果有人向我抱怨,我仍然愿意写下我学到的东西。

答案3

我已经处理过几次这个问题了,现在我认为没有办法将时间机器目录结构“转换”为正常目录结构。但是,只需复制目录,层次结构权限就可以正常工作。有两种好方法可以做到这一点:

a/ 使用 Finder 导航到所需目录并通过拖放将其复制出来,或 b/ 使用终端找到所需内容并将其拉出,tmutil restore例如

tmutil restore /Volumes/<Drive>/Data/Backups.backupdb/<machine>/2016-10-29-202128/<directory...> /Volumes/<drive>/<restore destination>

这将花费大量时间,并且需要您在目标驱动器上有足够的空间。值得从驱动器结构中的较低位置复制目录(例如您的用户目录),并且 Time Machine 完整备份包含您可能不想要的系统文件等。

不要使用命令行cp命令作为Finder并且tmutil会为您清理面向Time Machine的扩展属性。

这些方法是从这篇文章和其他地方抄袭而来的,但值得称赞的是:https://apple.stackexchange.com/questions/139175/transferring-a-single-folder-from-a-time-machine-to-a-different-mac

答案4

只需将包含您信息的文件夹复制到另一个位置/驱动器即可。使用磁盘实用程序擦除 Time Machine 备份驱动器。

相关内容