# 如何用命令行工具管理时间机器time machine

**URL:** <https://forum.beginner.center/t/topic/2694>\
**Category:** 🛠工具与编程\
**Tags:** macos, time-machine\
**Created:** [2026 年3 月 8 日 15:35 UTC](https://forum.beginner.center/t/topic/2694 "2026-03-08T15:35:37Z")\
**Posts on this page:** 1\
**Page:** 1

## AI 生成的摘要

本文介绍如何使用命令行工具管理 macOS 的 Time Machine 备份，重点解决备份空间占用过大问题。[doggie](/t/-/2694/1) 指出官方 GUI 功能有限，推荐使用系统自带的 `tmutil` 工具进行高级操作，如 `tmutil listbackups` 查看备份列表、`tmutil delete` 删除指定备份。文中还提供了自定义 Bash 脚本 `tmcleanup.sh`，支持按天数（如30天、90天）清理旧备份，并可修改为保留50%、25%或75%的旧备份以优化空间利用（例如实现‘一年前每月保留一份’）。此外，建议配合图形化工具 [BackupLoupe](https://www.soma-zone.com/BackupLoupe/) 深入分析备份中各文件/应用（如 Steam 游戏库、虚拟机）的空间占用，精准删减非关键数据。

<div class="post-metadata">

作者： ![doggie](https://forum.beginner.center/user_avatar/forum.beginner.center/doggie/32/550_2.png) [@doggie](https://forum.beginner.center/u/doggie)\
发布日期： [2026 年3 月 8 日 15:35 UTC](https://forum.beginner.center/t/topic/2694/1 "2026-03-08T15:35:37Z")

</div>

## 推荐词

官方提供的GUI设置太少了  
还是得用命令行

## 原文

> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码， 原文地址 [sspai.com](https://sspai.com/post/59368)

[Time Machine](https://support.apple.com/zh-cn/HT201250) 是 macOS 自带的一个备份工具，能够自动备份系统中的文件，并保留各个文件的历史版本。

在备份磁盘空间不足时，Time Machine 能够自动清理旧备份。但是部分场景下，仍有手动清理备份的需求，例如：

1. 一个硬盘被多台 Mac 使用，清理一台电脑的旧备份，为另一台电脑腾出备份空间
2. 释放硬盘空间，用于保存其他文件
3. 换用小容量硬盘，例如从 HDD 更换为 SSD
4. 删除备份中不重要的大文件（例如 Stram 游戏库、虚拟机、iOS 模拟器等），为个人文档等重要文件留出更多备份空间，从而保留重要文件的更多历史版本

在我的 NAS 上，由于之前没有设置空间配额，Time Machine 备份占用了大量空间，影响其他文件的存放。于是，我开始了解如何进行 Time Machine 的清理。

## tmutil 命令行工具

macOS 自带 `tmutil` 工具，能够实现查看备份、创建备份、删除备份、比较备份等功能。

其中，`tmutil listbackups` 命令可以显示 Time Machine 中的所有备份：

代码块复制

```auto
$ tmutil listbackups
/Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-12-21-200941
/Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2020-01-05-221538
/Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2020-01-19-203155

```

`tmutil delete` 命令则可以删除 Time Machine 中的指定备份：

代码块复制

```auto
$ sudo tmutil delete /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-02-01-211852 
Deleting: /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-02-01-211852
Deleted (427.2M): /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-02-01-211852

```

有了这两条命令，我们可以方便地在 shell 脚本中使用，进行批量删除备份的操作。

## 使用脚本批量删除旧备份

在上网搜索的过程中，我发现已经有人完成了批量删除 Time Machine 备份的脚本，下载该脚本，修改文件中的相关参数，即可实现对 Time Machine 的批量清理：

- [linjer/tmcleanup.md: Script to automatically remote old Mac OSX Time Machine Backups older than a specified number of days](https://sspai.com/link?target=https%3A%2F%2Fgist.github.com%2Flinjer%2Fa2da823718de9ba28373)

我对这个脚本进行了简单的修改，方便在使用时直接指定参数。脚本可在如下两个链接中下载：

- [blanboom/tmcleanup.md](https://sspai.com/link?target=https%3A%2F%2Fgist.github.com%2Fblanboom%2F014654c2e1b858359fada810ca5215d4%2Fc7f59483184da7cf670b0f83cd1bb6d549af5e38)
- [Scripts/Bash at master · blanboom/Scripts](https://sspai.com/link?target=https%3A%2F%2Fgithub.com%2Fblanboom%2FScripts%2Ftree%2Fmaster%2FBash)

使用时，只需要运行 `tmcleanup.sh`，后面依次跟上 Time Machine 磁盘挂载路径、计算机名称、要保留的备份的天数即可。例如下面的命令，能够实现清理 `/Volumes/时间机器备份/Backups.backupdb` 路径下，计算机 `blanboom-studio` 上 `30` 天前的所有备份：

代码块复制

```auto
$ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 30

```

## 使用脚本删除 50% 的旧备份

Time Machine 的一大特色功能，是智能保留备份的历史版本。对于近期的备份，保留尽可能多的版本，而对于早期备份，只保留每月版本：

Time Machine 的备份版本保留策略

但是，Time Machine 只能做到保留旧备份的每周备份。如果想要实现 **保留一年前的每两周备份** 、或者 **保留一年前的每月备份** ，Time Machine 就无能为力了。

上文的脚本经过简单的修改，就可以在删除旧备份时，每两条备份中只删除一条，而不是全部删除。这样就实现了保留 50% 的旧备份。

当然，也可以根据自己的需求修改脚本或组合使用，实现保留 25%，或者保留 75% 的旧备份。

修改后的脚本也已经上传到我的 GitHub 仓库，使用上文链接中的 `tmcleanup_50percent.sh`，即可实现清除 50% 的旧备份：

代码块复制

```auto
# 删除三个月前 50% 的备份（保留三个月前每两周备份）
$ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 90

# 连续两次运行脚本，实现删除一年前 75% 的备份（保留一年前的每月备份）
$ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 365
$ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 365

```

## 使用 BackupLoupe 深入分析 Time Machine 空间占用情况

上述脚本能够做到方便地删除旧备份。但是，想要更加深入地分析 Time Machine 的空间占用情况，进行针对性的清理，就要用到 BackupLoupe 了：

- [BackupLoupe: One Stop Shop for Time Machine](https://sspai.com/link?target=https%3A%2F%2Fwww.soma-zone.com%2FBackupLoupe%2F)

BackupLoupe 可以实现如下两点功能：

1. 分析哪些备份占用空间较大，从而做到删除占用空间大的备份
2. 分析备份中，哪些文件和目录占用空间大，从而做到删除备份中占用空间大的文件（例如 Steam 游戏库、大型 App、虚拟机、iOS 模拟器、视频文件等）

通过针对性地删除占用备份中不重要的大文件，可以腾出空间让 Time Machine 保存重要文件（例如个人文档、照片等）的更多历史版本，从而更充分地利用 Time Machine 存储空间。

BackupLoupe 的使用也很简单，打开 BackupLoupe，建立索引后，就可以看到每一个备份、以及备份中的每个目录的空间占用情况：

BackupLoupe 中，能够显示所有历史备份的占用空间

不过 BackupLoupe 本身只提供分析功能，并没有自带清理功能。关于如何清理备份中指定的文件或目录，可参考这篇文章：

- [Time Machine 使用教程（六）：如何手动删除 Time Machine 备份 – 少数派](https://sspai.com/post/30929)

备注：

- 题图来源：[https://unsplash.com/photos/hL8slYnc-bM](https://sspai.com/link?target=https%3A%2F%2Funsplash.com%2Fphotos%2FhL8slYnc-bM)
- 本文同时发布在我的博客，欢迎关注：[https://blanboom.org/2020/timemachine-cleanup/](https://sspai.com/link?target=https%3A%2F%2Fblanboom.org%2F2020%2Ftimemachine-cleanup%2F)
