如何解决Mac系统占用System Data过大 Mac深度清理系统缓存的方法

冬静吖_7288

冬静吖_7288

2026-05-20

774人浏览

原创

mac“系统数据”异常膨胀主因是本地快照、缓存残骸、日志堆积、ios备份、沙盒残留及ai模型文件;可通过系统储存管理工具、thinlocalsnapshots命令、手动清理用户/系统级缓存日志、containers与mobilesync备份五步安全释放空间。

如何解决mac系统占用system data过大 mac深度清理系统缓存的方法

如果您发现Mac的“系统数据”在储存空间中异常膨胀,占用高达数十甚至上百GB,这通常并非真实系统文件,而是本地快照、缓存残骸、日志堆积、iOS备份、沙盒容器残留及AI模型文件等临时性数据的集合。以下是解决此问题的具体操作路径:

一、使用系统内置储存管理工具安全识别并清理

该方法由macOS原生提供,无需第三方软件即可智能识别并移除已判定为冗余的缓存、日志、旧iOS备份与Time Machine本地快照,全程规避误删关键系统文件的风险,适合所有用户。

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

2、在边栏中点按“通用”,再点按右侧的“储存空间”;

3、等待系统完成空间分析后,找到“系统数据”类别旁的“管理”按钮并点击;

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

5、若显示“Time Machine本地快照”或“旧iOS备份”,勾选后点击“删除”;

6、确认操作后,系统将自动执行清理,此过程不会影响任何正在运行的应用或系统功能。

二、强制清除Time Machine本地快照

当外接备份硬盘未连接时,macOS会持续创建本地快照用于恢复,这些快照不显示于访达,却直接计入“系统数据”,单个可达数GB,长期累积可吞噬数十GB空间。使用thinlocalsnapshots命令比手动删除更安全稳定,能自动保留最近快照。

1、打开“终端”应用;

2、输入命令查看现有快照:tmutil listlocalsnapshots /;

3、若输出包含多个快照(如com.apple.TimeMachine.2025-11-28-142211),执行精简命令:sudo tmutil thinlocalsnapshots / 5000000000 4;

4、按回车后输入管理员密码(输入时不显示字符,输完直接按回车);

5、等待终端返回“Thinning complete”提示;

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

三、手动清理用户级缓存与日志(~/Library/Caches 与 ~/Library/Logs)

用户级缓存和日志长期积累会显著膨胀“系统数据”体积,且不被系统储存管理界面完全归类。所有路径均位于当前用户目录下,无需管理员权限,规避系统级风险,但需避开Safari与Mail等核心应用缓存以防止功能异常。

1、打开“访达”,按下Command+Shift+G调出“前往文件夹”;

2、输入~/Library/Caches并回车,进入用户级缓存目录;

Codex Bridge
Codex Bridge

一款AI工具,主要用于将编码任务调度到本地 OpenAI Codex CLI,支持后台执行、状态轮询以及可交互式回答的澄清问题。适用于 OpenClaw 需要……,适合需要提升相关任务效率的用户。

下载

3、按“大小”列排序,重点删除名称含Google、Adobe、WeChat、Bilibili等第三方标识的子文件夹;

4、切勿删除com.apple.Safari、com.apple.mail、com.apple.LaunchServices等以com.apple.开头的缓存文件夹;

5、再次使用Command+Shift+G,输入~/Library/Logs;

6、仅删除非当前年份(即早于2026年)的完整日志文件夹,或名称含.old、.gz、.log.0等后缀的归档日志文件。

四、清理Containers与Application Support中的沙盒残留与iOS备份

微信、钉钉、飞书等主流应用受macOS沙盒机制限制,其全部数据隔离存储于~/Library/Containers,同一文件在多群接收即生成多份副本;iOS设备备份则默认保存在~/Library/Application Support/MobileSync/Backup/,常达数GB且无图形化入口提示,是“系统数据”异常膨胀的常见元凶。

1、打开“访达”,按下Command+Shift+G;

2、输入~/Library/Containers并回车;

3、按“修改日期”排序,重点检查com.tencent.xinWeChat、com.dingtalk.mac、com.larksuite.feishu等大体积文件夹;

4、对半年以上未更新、且对应App已卸载的文件夹,右键拖入废纸篓;

5、再次使用Command+Shift+G,输入~/Library/Application Support/MobileSync/Backup/;

6、查看各子文件夹修改日期与大小,仅保留最新一次备份,其余全部拖入废纸篓。

五、清除系统级缓存与诊断日志(/Library/Caches 与 /var/log)

系统级缓存与日志由守护进程和服务生成,部分归档日志体积庞大,但当前运行日志不可删除。需严格区分新旧文件以规避诊断能力损失,操作前建议关闭所有非必要应用。

1、打开“终端”应用;

2、执行用户日志清理:rm -rf ~/Library/Logs/*;

3、执行系统级缓存清理:sudo rm -rf /Library/Caches/*;

4、执行系统日志清理:sudo rm -rf /private/var/log/*;

5、如需保留最近7天日志,改用:sudo find /private/var/log -type f -mtime +7 -delete;

6、执行完毕后务必重启Mac,确保新缓存正常生成且系统服务无异常。

相关专题

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

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

2023.06.20

2809

3

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

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

2023.07.25

2168

9

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

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

2023.08.02

1140

5

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

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

2023.08.09

1078

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

1296

5

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

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

2023.09.20

2018

7

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

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

2023.09.20

3120

8

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

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

2023.09.22

13775

6

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

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

2023.09.22

529

3

热门下载

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

精品课程

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

共1课时 | 181人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20.2万人学习

好课诞生记
好课诞生记

共20课时 | 7.1万人学习