如何解决Mac系统占用System Data过大 Mac清理系统冗余文件的教程

小伟酱_3317

小伟酱_3317

2026-06-02

892人浏览

原创

mac“系统数据”占用巨大是因它汇总了缓存、日志、time machine本地快照、ios备份等受保护路径中的不可见文件;需用系统储存管理工具识别清理,或按来源精准删除。

如何解决mac系统占用system data过大 mac清理系统冗余文件的教程

Mac“系统数据”(System Data)在储存空间中显示占用高达几十GB甚至上百GB,且无法通过访达直接查看或删除对应文件,是因为它实际是 macOS 将用户级缓存、日志、Time Machine本地快照、iOS备份、沙盒应用容器、iCloud同步残留等不可见内容统一归类后的逻辑汇总——这些数据真实散落在多个受保护路径中,必须按来源精准清理才能安全释放空间。

用系统内置储存管理工具一键识别并清理

这是最安全的起步操作,无需终端命令或手动路径输入,系统会自动扫描并标记出已确认可删的冗余项,避免误触核心文件。

1、点击屏幕左上角苹果图标 → 选择“系统设置”;

2、左侧边栏点“通用”,右侧点“储存空间”;

3、等待约10秒完成分析,找到“系统数据”条目右侧的“管理”按钮并点击;

4、在弹出窗口中,依次展开【缓存文件】→点击“删除”、【日志文件】→点击“删除”、【旧文件】→点击“优化”;

5、若出现“Time Machine本地快照”或“旧iOS备份”子项,勾选后点击“删除”;【此步不可跳过,这两类是System Data暴涨的头号元凶】

强制精简Time Machine本地快照

当外接Time Machine硬盘断开连接时,macOS会在启动盘自动生成本地快照用于恢复。这些快照不显示于访达,却全部计入System Data,单个可达2–5GB,累积数周即可吞噬30GB以上空间。

方法一:终端命令精简(推荐)

1、打开“终端”;

2、输入 sudo tmutil thinlocalsnapshots / 5000000000 2 并回车;

3、输入管理员密码(输入时无光标反馈,输完直接回车);

4、等待返回“Thinning complete”提示;

5、再执行 tmutil listlocalsnapshots / 确认仅剩最近1–2个快照或输出为空。

方法二:彻底清空(仅在外接硬盘长期不连接时使用)

在终端中运行:sudo tmutil deletelocalsnapshots / → 输入密码 → 等待完成。

手动清理用户级沙盒缓存与iCloud冲突副本

微信、钉钉、飞书等国产App受macOS沙盒机制限制,所有数据被隔离存入~/Library/Containers,同一张图片在多个群聊中接收即生成多份副本;iCloud同步异常还会产生“.conflict”或“已过期”文件,二者均被计入System Data但不会出现在储存管理界面中。

第一步:定位高占比容器

1、打开访达 → Command+Shift+G → 输入 ~/Library/Containers → 回车;

2、在窗口顶部工具栏点“显示”→“排序方式”→“大小”,让大文件夹排在最前;

Tavus
Tavus

Tavus是一款面向开发者的实时 AI 视频分身和个性化视频 API 平台。

下载

3、重点检查 com.tencent.xinWeChat、com.dingtalk.mac、com.larksuite.feishu 这三个文件夹,它们常占1–8GB不等;

第二步:安全删除

4、右键点击目标文件夹 → “移到废纸篓”;

5、清空废纸篓;

6、重启Mac,对应App首次启动时会重建必要缓存,旧冗余副本不再恢复。

清理系统与用户日志(防止持续增长)

未轮转的归档日志(尤其是/var/log下的.gz压缩包)会长期膨胀,且不会被系统储存管理识别。部分日志文件夹可达数GB,是System Data反复反弹的常见原因。

1、访达 → Command+Shift+G → 输入 /var/log → 回车;

2、按大小排序 → 删除所有带“.gz”或“.old”后缀、且修改日期早于90天的日志包(如 system.log.0.gz);

3、再次 Command+Shift+G → 输入 ~/Library/Logs → 回车;

4、删除完整年份命名的文件夹中非当前年份的子目录(例如删除“2024”“2025”,保留“2026”);

【切勿删除DiagnosticReports或CrashReporter中近7天内的崩溃报告】

清除Handoff剪贴板历史与MobileSync旧备份

Handoff剪贴板缓存(shared-pasteboard/archives)和iOS旧备份(MobileSync/Backup)虽不起眼,但长期积累后单个可达1–3GB,且完全静默计入System Data。

方法一:剪贴板缓存

1、访达 → Command+Shift+G → 输入 ~/Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/archives;

2、全选该文件夹内所有内容 → 拖入废纸篓 → 清空废纸篓。

方法二:iOS备份

1、访达 → Command+Shift+G → 输入 ~/Library/Application Support/MobileSync/Backup/;

2、按修改日期排序 → 删除早于最近一次设备升级或换机时间的整个备份文件夹(文件夹名是40位十六进制字符串,右键“显示简介”可查看创建日期);

3、清空废纸篓。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

3229

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

2328

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

1260

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

1218

4

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

2023.09.05

1356

5

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2023.09.20

2198

7

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

2023.09.20

3520

8

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

2023.09.22

16155

6

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 186人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20.5万人学习

好课诞生记
好课诞生记

共20课时 | 7.2万人学习