当前位置: 首页 > news >正文

【MacOS】系统数据占用超大存储空间,原因、定位、清理方式记录

问题

在这里插入图片描述

定位数据

df -h
Filesystem        Size    Used   Avail Capacity iused ifree %iused  Mounted on
/dev/disk2s1s1   460Gi    15Gi   4.5Gi    77%    412k   47M    1%   /
devfs            206Ki   206Ki     0Bi   100%     714     0  100%   /dev
/dev/disk2s6     460Gi   3.0Gi   4.5Gi    41%       3   47M    0%   /System/Volumes/VM
/dev/disk2s2     460Gi    13Gi   4.5Gi    75%    1.8k   47M    0%   /System/Volumes/Preboot
/dev/disk2s4     460Gi   699Mi   4.5Gi    14%     345   47M    0%   /System/Volumes/Update
/dev/disk1s2     500Mi   6.0Mi   481Mi     2%       1  4.9M    0%   /System/Volumes/xarts
/dev/disk1s1     500Mi   5.8Mi   481Mi     2%      31  4.9M    0%   /System/Volumes/iSCPreboot
/dev/disk1s3     500Mi   2.4Mi   481Mi     1%      91  4.9M    0%   /System/Volumes/Hardware
/dev/disk2s5     460Gi   422Gi   4.5Gi    99%     10M   47M   18%   /System/Volumes/Data
map auto_home      0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home
/dev/disk2s3     460Gi   2.0Gi   4.5Gi    31%     110   47M    0%   /Volumes/Recovery
/dev/disk4s1     414Mi   412Mi   1.4Mi   100%     104  4.3G    0%   /Volumes/Amazon Q
/dev/disk3s1     5.0Gi   948Mi   4.1Gi    19%      34   43M    0%   /System/Volumes/Update/SFR/mnt1
/dev/disk2s1     460Gi    15Gi   4.5Gi    77%    426k   47M    1%   /System/Volumes/Update/mnt1
cd /System/Volumes/Data
ls -al
cd ./private
ls -al
total 0
drwxr-xr-x      6 root  wheel      192  6 12 10:00 .
drwxr-xr-x     22 root  wheel      704  2  5 00:57 ..
drwxr-xr-x     77 root  wheel     2464  6 11 21:23 etc
drwxr-xr-x      2 root  wheel       64  2  5 00:57 tftpboot
drwxrwxrwt  45055 root  wheel  1441760  6 13 07:01 tmp
drwxr-xr-x     34 root  wheel     1088  3 11 10:48 var

发现目标:/System/Volumes/Data/private/tmp目录占用超大存储空间
进入tmp,发现tmp下的文件全都是go-build文件
在这里插入图片描述

出现大量go-build文件的原因:

文件用途

/System/Volumes/Data/private/tmp/go-buildXXXXXX是Go语言编译过程中生成的临时构建目录,其中XXXXXX为随机编号。这些目录包含以下内容:

大量出现的原因

大量此类目录的产生通常与以下场景相关:

频繁的Go工具链操作
每次运行go buildgo testgo run时,工具链会创建新的临时目录。默认行为不会自动清理历史构建目录。

并行编译
当多个Go进程同时运行时(如CI/CD流水线或IDE后台操作),每个进程会生成独立的构建目录。

测试缓存机制
go test默认会保留测试二进制文件,用于加速后续测试运行。可通过-count=1禁用缓存。

管理建议

手动清理
直接删除/private/tmp/go-build*目录是安全的,但需注意:

  • 确保没有正在运行的Go编译进程
  • 需管理员权限(因在系统保护区域)

环境变量配置
设置GOTMPDIR可更改临时目录位置:

export GOTMPDIR=$HOME/.gotmp

定期维护
macOS系统会自动清理/tmp目录,但/private/tmp可能需要手动维护。可配置cron任务定期清理。

IDE设置调整
使用Goland/VSCode等IDE时,调整以下设置:

  • 减少后台检查频率
  • 配置自定义GOTMPDIR
  • 禁用不必要的实时检测功能

注意:这些临时文件通常不会影响系统性能,但可能占用磁盘空间。长期不清理可能累积数GB文件。

数据清理方案

1. 不切换GOTMPDIR目录

/System/Volumes/Data/private/tmp目录下的文件全部是今天和昨天的,两天之内产生了200G+的数据量。无法利用上macOS系统3天自动清理/tmp目录的能力

当前GO环境变量GOTMPDIR=“”

2. 直接删除/private/tmp/go-build*是安全的

➜  tmp rm -rf ./go-build*
zsh: argument list too long: rm

报错原因:表明你要删除的文件数量过多,超出了系统对命令行参数长度的限制。

解决方案:使用 find 命令逐条删除(推荐)

find . -name "go-build*" -exec rm -rf {} +

-name “go-build*”:匹配所有 go-build 开头的文件/目录。

-exec rm -rf {} +:对匹配到的文件执行删除操作。

+比 ; 更高效,能减少 fork 次数。

TIPS:用命令删除没有open后手动删除快(狗头🐶)

相关文章:

  • vue常用框架,及更新内容
  • ServiceNow培训第1期
  • 50种3D效果演示(OpenGL)
  • openeuler 虚拟机:Nginx 日志分析脚本
  • 从开发到上线:iOS App混淆保护的完整生命周期管理(含Ipa Guard)
  • 直角坐标系-zernike多项式波面拟合
  • 初学时间复杂度
  • MRI中的“髓鞘探测器”:T1w/T2w比值揭秘
  • LeetCode 744.寻找比目标字母大的最小字母
  • 【C++特殊工具与技术】优化内存分配(六):运行时类型识别
  • 用 PlatformIO + ESP-IDF 框架开发 ESP32
  • 【Three.js】初识 Three.js
  • 很喜欢地理,高考选地理相关专业该怎么选?
  • 《数据安全法》学习(一)
  • BLEU 中的修正 n-gram 精确度 (Modified n-gram Precision)
  • Python自动化办公工具开发实践:打造智能报表生成系统的心得与洞见
  • CVPR2024迁移学习《Unified Language-driven Zero-shot Domain Adaptation》
  • qt配合海康工业相机取图开发
  • OpenCV 鼠标操作与响应之绘制ROI提取图像
  • grubby命令详解
  • 做网站除了买域名还有什么/求老哥给几个靠谱的网站
  • 如何在南美做网站推广/自动友链网
  • 东莞志豪建设公司网站/百度推广开户免费
  • html静态网站作品/seo入门培训学校
  • 电商开发网站公司/西安百度推广优化托管
  • 政府网站建设运营情况汇报/一个具体网站的seo优化