一 前言

最近发现mac的存储空间不够了,看一下系统的存储空间如下图所示,这个其他占了160+G的存储空间,那么这个其他到底包含什么东西呢?在网上查了很久,找到一种比较认可的说法是这样的:

不同Mac上显示的“其他”可能包含不同的信息。Mac存储空间共有系统、应用、文稿、废纸篓、照片、音乐创作、邮件、废纸篓等12种类别,但并不是所有Mac上都会显示这些类别。例如有的Mac上显示“系统”、“应用、“文稿”、“音乐创作”、“其他”,这时候“其他”就表示不包括在上述4种类别中的文件。有一点可以肯定的是,“其他”包含了Spotlight(聚焦搜索)无法识别的文件以及应用插件或者扩展功能。

二 各文件夹中有些啥?

上面这种对其他的解释比较笼统,我们也不知道这个里面到底放了什么东西。在网上查了很久也没找到其他有用的信息,所以最后决定自己捣鼓系统中的内一个文件夹,去看看每个文件夹的大小和内容。经过一番查看后,大致了解了每个部分所对应的大小和基本内容如下图。

  • 系统:这没什么好多的,系统盘,不要删任何的东西
  • 用户:这个就比较杂了,我们可以看到占到的空间也是达到了恐怖的131.85G,我们上面其他中很大一部分内容就在这了。里面的内容也是五花八门,基本上我们平时下载的文件、视频、桌面资料,还有各种软件的配置文件、缓存等都会在这个里面。我们分析里面的各个文件后发现,所有的文件加起来只有不到20G的内容,这就很奇怪了??通过查询资料才发现,这个目录下有一个隐藏的资料库文件夹,该文件夹的大小有103G,这个就是我们的终极大boss了。

    • 用户中的资料库占用了高达103.62G的存储空间,下面是该文件夹的基本内容和大小分布,这个文件夹中主要存储的是用户安装的各类软件所需要的一些配置工具、缓存等内容。其中比较大的两个文件夹是containers和developer。

      • containers:这个里面主要是系统需要的一些扩展插件和工具等,不能删除
      • developer:主要就是xcode中产生的一些缓存、插件等内容,可以优化,也是我们进行优化的重点对象。具体优化方案在后面我们会具体提到

  • 资源库:这个主要就是系统中我们安装的各个软件的配置工具和缓存

    • 我这里这个文件夹中主要是这个 /Library/Developer/CoreSimulator/ 占了很大一部分内容,有30.6G,这个里面主要就是存放的是xcode下载的模拟器系统,我们如果不需要就可以删掉一些以前下载的不需要再用的系统就行,后面如果需要也可以在xcode中重新下载,不影响开发

  • 应用程序:这个也没啥好说的,就是我们安装的应用程序,不需要的就直接在这个文件夹中删掉就是卸载
  • preboot:这个是系统文件,不能删除,也不大,不用管
  • 最后发现所有的垃圾文件都是因为xcode开发过程中产生的。mac中的文件目录结构如下:

三、存储空间的优化

在前面的分析中,我们发现优化的地方其实就两个部分,一个是系统资料库中的  /Library/Developer/CoreSimulator/ 这一部分,另一个是用户资料库中的 /Users/mukekeheart/Library/Developer  这一部分,这两部分都是我们在xcode开发过程产生的一些缓存和下载文件。关于这两部扥优化方案如下:

1. /Users/mukekeheart/Library/Developer/Xcode/DerivedData/

这个文件夹中保存的是Xcode的缓存文件,曾经在Xcode跑过的所有项目的索引、build的信息等都会保存在这里。删除后在下次打开项目编译的时候将会重新生成。由于这里包含了大量已经没用的项目的信息又懒得去筛选,于是把整个文件夹删了。

2. /Users/mukekeheart/Library/Developer/Xcode/iOS DeviceSupport/

每次把一个设备接入电脑进行真机调试之前,电脑会对设备建立索引,也在此文件夹下生成对该设备系统的支持文件。于是这里存在了一堆对旧版本iOS设备支持的文件。而我最近基本只对iOS9.3的设备进行真机调试。于是删除了所有低于9.3的文件夹。

3. /Users/mukekeheart/Library/Developer/Xcode/Archives/

每次打包App的dSYM等数据就保存在这里,把一些没用的版本删了。如果是上线了的版本还是保留吧。

4. /Users/mukekeheart/Library/Developer/Xcode/Products/

同上,把没用的删了。

5. /Users/mukekeheart/Library/Developer/CoreSimulator/Devices/

一堆模拟器的数据。每个文件夹里包含的就是一个特定系统版本的设备的数据。每个文件夹对应哪个设备可以在其下device.plist中查看。亲测删除之后的效果跟在模拟器里重置相同。省得一个个去重置了,删吧。

6. /Users/mukekeheart/Library/Developer/XCPGDevices/

这里保存了playground的项目缓存。全删了。

7. /Library/Developer/CoreSimulator/Profiles/Runtimes

这里保存的是xcode下载的不同版本的目标模拟器,可以删除不需要的目标模拟器

Mac中的垃圾文件的清理的更多相关文章

  1. 在linux和Mac中访问某个文件夹中所有的文件

    在linux和Mac中访问某个文件夹中所有的文件——输出所有的文件名 #include <stdio.h> #include <dirent.h> int main() { s ...

  2. [Mac]Mac中显示资源库文件夹

    在 Mac OS X 10.7 Lion 之后的版本中 , 用户的个人目录内的资源库文件默认是隐藏状态. 这个设定可能是为了避免用户误操作. 但是对于中高级用户来说会有些不变. 通过如下方式可以找回被 ...

  3. 如何优雅地删除 Linux 中的垃圾文件

    不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容.如果不是的话,你也可以留下来凑凑热闹嘛(>-& ...

  4. Mac中如何查找文件

    https://blog.csdn.net/fungleo/article/details/78489552

  5. Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj

    Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj 1. 俩个问题::识别垃圾文件与清理策略1 2. 如何识别垃圾图片1 2.1. 体积过小文件<1 ...

  6. Atitit.论垃圾文件的识别与清理 文档类型垃圾文件 与api概要设计pa6.doc

    Atitit.论垃圾文件的识别与清理 文档类型垃圾文件 与api概要设计pa6.doc 1. 俩个问题::识别垃圾文件与清理策略1 1.1. 文件类型:pic,doc,v,m cc,isho pose ...

  7. [教训] windows 电脑的垃圾文件清理...

    坑你没商量! 这个名叫 “清除系统垃圾.bat“ 的文件在网上传播很广,但是,却出现了错误的版本,如果按照它逐条执行,将导致系统文件夹被一锅端,只能再重装的悲剧! 举个栗子: 错误版本:http:// ...

  8. Mac OS X 恢复 VMware Fusion 虚拟机中的 vmdk 文件

    今天手贱把 VMware Fusion 虚拟机中的 Windows 10 搞挂了,原因是磁盘清理了下,然后重启就蓝屏了,Windows 10 自动修复.手动还原.手动重置系统,试过都不行,恢复系统是没 ...

  9. CCleaner 垃圾文件清理规则 编写指南

    以下内容的英文版本来源于 CCleaner 官方论坛,仅供参考.欢迎大家编写并分享针对常用国产软件的垃圾文件清理规则!需要说明的是规则文件(Winapp2.ini)需和程序文件放于同一文件夹下,才能被 ...

随机推荐

  1. k8s极简史:K8s多集群技术发展的历史、现状与未来

    引子 随着云原生技术的普及,越来越多的企业使用Kubernetes来管理应用,并且集群规模也呈爆发式增长,企业也亟需应对随集群规模增长而带来的各种挑战.同时,为了更好地提供高可用.弹性伸缩的应用,企业 ...

  2. Pull后产生多余的log(Merge branch 'master' of ...)

    第一步: git reset --hard 73d0d18425ae55195068d39b3304303ac43b521a 第二步: git push -f origin feature/PAC_1 ...

  3. STL源码剖析:算法

    启 算法,问题之解法也 算法好坏的衡量标准:时间和空间,单位是对数.一次.二次.三次等 算法中处理的数据,输入方式都是左闭又开,类型就迭代器, 如:[first, last) STL中提供了很多算法, ...

  4. shell脚本带参数启动项目

    用maven工程打包时,会将数据库连接一并打进去,如果需要经常修改数据库连接,则需要打开jar包然后修改配置,这样很麻烦耗时并且容易出错. 因此需要将数据库配置放入项目外,这样修改数据库时去固定的配置 ...

  5. webpack 编译时,提示 Unexpected token: keyword «const»

    代码里如果用到const 关键字,编译报这种错误 解决方法: npm install terser-webpack-plugin --save 然后,webpack配置: const TerserPl ...

  6. ElasticSearch(一)概念介绍及环境搭建

    一.什么是ElasticSearch: Elasticsearch (ES)是一个基于Lucene构建的开源.分布式.RESTful 接口全文搜索引擎.Elasticsearch 还是一个分布式文档数 ...

  7. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性那些事(1)- 概览

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的基本特性. 恩智浦半导体于2017年开始推出的i.MX RT系列重新定义了MCU,其第一款芯片i. ...

  8. It还是高薪行业不?—软件测试

    It还是高薪行业不?—软件测试 谁都希望拿高薪,但是并不是所有人.所有地方都能的:甚者培训出来还不能就业的大有人在,也不是所有人都适合培训后就业(年龄.学历.专业.期望就业地点.不同行业转行还是有很大 ...

  9. KMP,HASH,Trie,AC自动机

    我做个总结算了下午看了一下AC自动机和学习我的大生物(当然是多谢鑫神了)..完了要崩.. 1 KMP 只要是学过的人都觉得比较简单吧 但是学不会的人就感觉很难了,我是那种顿悟的然后感觉非常简单的人过程 ...

  10. 【PA2014】Bohater 题解(贪心)

    前言:一道经典贪心题. -------------------------- 题目链接 题目大意:你有$z$滴血,要打$n$只怪.打第$i$只怪扣$d_i$滴血,回$a_i$滴血.问是否存在一种能够通 ...