Mac系统占用空间大、空间不够、查看系统文件大小分布
背景:
最近老提示空间不够,很尴尬,一直弹系统提示

如图,256的空间,就剩下几个G了,其中最大头的系统占用:160G,占比60%多
正常情况下:我们可以点击管理,进入到系统磁盘优化界面:

这种适用于简单的文件占用分析,一般我们能够通过 清理文稿 和 回收箱 来解决空间不够的问题。
1、清空回收站。
2、在文稿里,按文件大小排序,删除不需要的文件。
3、对于GarageBand,这个是系统上的模拟乐器,一般都使用不到。
清除方法:
rm -rf /Library/Application\ Support/GarageBand
rm -rf /Library/Application\ Support/Logic
rm -rf /Library/Audio/Apple\ Loops

不过,对于罪魁祸首,系统的160G,我们怎么才能知道她的内部存储分布呢?
正文:
关于如何查看系统的文件占用详情。
一、首先打开终端,输入
du -sh *
这个命令用来查看根目录下,所有文件的大小分布,如图所示:

其中,我们很容易能看到每个文件的大小占比,快速定位到最大占比的文件:Library
二、输入命令,进入到Library文件路径
cd ~/Library

然后,查看Library下的所有文件大小分布。
输入:
du -d -h

很容易我们可以找到最大的文件:/Developer
当然,其他的文件大小,我们也都能看到,一目了然。
三、到这里,我们基本就能知道下面的套路了,我们可以继续往下查看
比如,我这里继续进入到Developer文件,再查看他的每个子文件大小:

基本,查看个两三层,就基本能知道大概的原因了,我这边由于是程序猿,所以Xcode是根本原因,占了系统160G的一半大小。
到这里为止,如果你也是程序猿,有兴趣的,可以继续看;如果没有兴趣的可以直接跳第四步。


基本这就到底了,大概的空间占用分布从上面几张图,也基本有数了。
以上是讲如何查看及分析文件,如果你是iOS程序猿,这边附上几个清理步骤(清理Xcode缓存)
经过测试,我暂时发现这几个文件可以适当清理下:

1 ./Archives 这个文件存储的是你所有的历史打包文件,你可以将一些历史的包删掉,最近的如果不放心可以先留着,不过全部删除也是没问题的,但是,如果你删除了,我们Xcode打包上传界面就看不到东西了(如下图所示,该界面的东西就没了)

2 ./DerivedData 这个文件大家应该比较熟悉了,存储的是所有项目的一些缓存数据、包括编译缓存文件等等,这个文件是可以全部清理的,当然,你也可以保留一些最近的项目,先暂时清理历史项目的缓存。
3 ./iOS DeviceSupport 这个文件里面存储的是xcode对手机各个版本的支持文件,这里如果你的项目不再需要支持iOS6、iOS7等,可以先把里面的基于iOS6、iOS7的支持文件清除。
4 附上 完整版Xcode瘦身方法大全 ,有兴趣的可对照此文操作。
四、经过第三步的层层分析,我们基本能知道了每个文件的大小分布,也能找到一些不需要用的垃圾文件,其中大多以缓存文件居多,大家可以适当进行清理~
最后,如果有对命令不感冒的人,也可以通过Finder来进行可视化的查看。
打开Spotlight(Command+空格 或 Ctrl+空格),输入 ~/Library

能进入到资源库文件路径:

最右边的文件就对应刚才命令出来的文件,我们可以根据命令查找到的占用最大的文件,这里点进去查看,然后再根据自己的需求进行适当清理。
比如,我上面的最后分析的路径:

特别更新:
本篇的清理,可能不是特别全面,比如说常用的QQ、微信软件,其实占用空间也很大(10~20G),可以查看续篇
Mac查看及清理QQ、微信本地下载的文档、图片、视频等
希望能对大家有帮助~
Mac系统占用空间大、空间不够、查看系统文件大小分布的更多相关文章
- Linux系统运维笔记(一),查看系统版本和设置系统时间
Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...
- linux系统top命令查看系统状态
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...
- linux怎样使用top命令查看系统状态
有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...
- Linux--top命令查看系统状态,所有值讲解
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 一.top ...
- Linux centos7 日常运维——使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令
一.使用w查看系统负载 w .uptime查看系统负载,0.00表示1分钟之内负载为0 cat /proc/cpuinfo查看cpu核数 二.vmstat命令,查看进程.cpu.memory.交换. ...
- 77 swapon-激活Linux系统中交换空间
Linux swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存. 语法 /sbin/swapon -a [-v] /sbin/swapon [-v] ...
- Linux系统查看系统版本命令
以下操作在centos系统上实现,有些方式可能只适用centos/redhat版本系统 uname -a |uname -r查看内核版本信息 [root@node1 ~]# uname -a Linu ...
- 使用top命令查看系统状态
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高? 使用SSH ...
- Mac系统清理、占用空间大、空间不够、查看系统文件大小分布
背景: 最近老提示空间不够,很尴尬,一直弹系统提示 如图,256的空间,就剩下几个G了,其中最大头的系统占用:160G,占比60%多 正常情况下:我们可以点击管理,进入到系统磁盘优化界面: 这种适用于 ...
随机推荐
- 局域网内补丁更新80072EE2错误
在公网中,80072ee2通常是在进行自动更新时遇到的连接性错误.通常由于三防杀毒软件或者浏览器,代理服务器设置不正确而导致的.那么如果是在局域网中遇到该问题,该如何解决呢? 错误截图: 1.首先确认 ...
- 脚本语言:Xmas(三)
自从将Xmas的GC换成现在的非迁移式的全局收集器后,最近几个月一直耗在Xmas上面:最明显的改变就是:更彻底地支持了面向对象.更强大的编译器. 所以,本文就来说说,真正的Xmas. 一.目标 一门语 ...
- 【算法系列学习】codeforces C. Mike and gcd problem
C. Mike and gcd problem http://www.cnblogs.com/BBBob/p/6746721.html #include<iostream> #includ ...
- C#基础知识-流程控制的应用(四)
流程控制我们在编程中运用到的地方非常的多,在上篇中仅仅只是简单的介绍每一种的使用,并没有运用到实例中,很难去理解它真正的作用.下面我们将实际的运用流程控制的代码写一些实例相关的程序,加深对流程控制的理 ...
- Linux 按时间批量删除文件(删除N天前文件)
需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据. 可以使用下面一条命令去完成: -name "*.*" -ex ...
- java jdk中安装证书的步骤
需要注意的是:导入证书时,请确认导入的JDK为当前程序运行所用的JDK,且路径是jdk目录下的jre目录路径,非与jdk同级的jre目录 首先你可以把需要导入的证书放在keytool的同级目录下,然后 ...
- vs2015c++/MFC入门知识全集/实例规范书籍视频下载孙鑫c++对话框计算器基础控件使用教程系列
VIP教程可免费看.可免费下载前部分试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 本课程目录 67章 [MFC项目开发第01天]Wind ...
- 深入理解Java常用类----String(二)
上篇介绍了String类的构造器,获取内部属性等方法,最后留下了最常用的局部操作函数没有介绍,本篇将接着上篇内容,从这些最常见的函数的操作说起,看看我们日常经常使用的这些方法的内部是怎么实现的.第一个 ...
- Java IO详解(五)------包装流
File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...
- AngularJS操作DOM——angular.element
addClass()-为每个匹配的元素添加指定的样式类名 after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点 append()-在每个匹配元素里面的末尾处插入参数内容a ...