背景:

最近老提示空间不够,很尴尬,一直弹系统提示

如图,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系统占用空间大、空间不够、查看系统文件大小分布的更多相关文章

  1. Linux系统运维笔记(一),查看系统版本和设置系统时间

    Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...

  2. linux系统top命令查看系统状态

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...

  3. linux怎样使用top命令查看系统状态

    有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...

  4. Linux--top命令查看系统状态,所有值讲解

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 一.top ...

  5. Linux centos7 日常运维——使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令

    一.使用w查看系统负载 w .uptime查看系统负载,0.00表示1分钟之内负载为0 cat  /proc/cpuinfo查看cpu核数 二.vmstat命令,查看进程.cpu.memory.交换. ...

  6. 77 swapon-激活Linux系统中交换空间

    Linux swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存. 语法 /sbin/swapon -a [-v] /sbin/swapon [-v] ...

  7. Linux系统查看系统版本命令

    以下操作在centos系统上实现,有些方式可能只适用centos/redhat版本系统 uname -a |uname -r查看内核版本信息 [root@node1 ~]# uname -a Linu ...

  8. 使用top命令查看系统状态

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高? 使用SSH ...

  9. Mac系统清理、占用空间大、空间不够、查看系统文件大小分布

    背景: 最近老提示空间不够,很尴尬,一直弹系统提示 如图,256的空间,就剩下几个G了,其中最大头的系统占用:160G,占比60%多 正常情况下:我们可以点击管理,进入到系统磁盘优化界面: 这种适用于 ...

随机推荐

  1. vscode同步设置&扩展插件

    首先安装同步插件: Settings Sync 第二部进入你的github如图:  打开设置选项: 新建一个token: 如图:  记住这个token值 转到vscode 按shift+alt +u ...

  2. 使用Java语言开发微信公众平台(六)

    在上一节课程中,我们来学习了微信公众平台最基础的一个接口--access_token,并且能够从微信公众平台中取到access_token. 那么,在本节课程中,我们要以上节课获取到的access_t ...

  3. mina.net 梳理

    LZ最近离职,闲着也是闲着,打算梳理下 公司做的是电商,CTO打算把2.0系统用java 语言开发,LZ目前不打算做java,所以 选择离职.离职前,在公司负责的最后一个项目 供应链系统. 系统分为 ...

  4. PHP 学习笔记(2)

    <?php$foo = "0";  // $foo 是字符串 (ASCII 48)$foo += 2;   // $foo 现在是一个整数 (2)$foo = $foo +  ...

  5. Android Material Design--TextInputLayout

    TextInputLayout 1. 简介 官网开篇: Layout which wraps an EditText (or descendant) to show a floating label ...

  6. python中str的find()

    今天学习语法的时候发现字符串自带函数find和操作符in功能十分近似,几乎一模一样 if 'a' in name:    print 'Yes, it contains the string &quo ...

  7. map中结构体做关键字的注意事项

    序: 今天做一道题,由于递归函数比较恶心,如果用记忆化搜索,数据范围极大却又用不全(二维数组存的话直接炸).所以决定干脆使用stl::map存储(反正有O2优化),但是执行insert的时候,编译器却 ...

  8. Java面试题之最扯淡的String

    public class ThreadException { public static void main(String[] args) { 没加final的代码 String hello = &q ...

  9. ThreadGroup详解

     ①定义线程组 ThreadGroup类中有 2个构造方法,它们用来定义线程组.这 2个构造方法的使用格 式如下: public ThreadGroup(String name); public Th ...

  10. RabbitMQ学习2---使用场景

    RabbitMQ主页:https://www.rabbitmq.com/ AMQP AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现.它主要包括以下组件: 1.Serve ...