如果不是spotlight的检索错误所致,那么“其它”可能就是真的非视频图片等已知文件所占用。
如果自觉没有保存过太多的文件,可以手动检查到底哪个文件夹占用空间,策略是从占用空间最多的文件夹开始排查。
一种简便的方法是使用第三方的文件分析软件,如DaisyDisk(https://daisydiskapp.com/);另一种方法是下面介绍的命令行的方式。这需要一些命令行来辅助我们,如果不太习惯,可以慢慢尝试。下面的命令,只要复制到终端后回车运行并按照屏幕提示操作即可。
发现:
=======
使用下面的命令看看到底哪个目录占用空间多:
sudo du -hd1 /; sudo du -hd1 /Users
如果询问密码,请输入当前管理员的密码(如果当前用户不是管理员,需要其他的命令su来首先切换到管理员帐户)
该行命令包含两个。第一个可以看见系统盘根下每个子目录的占用空间大小;第二个检查用户目录下,哪个用户占用的空间多。对一般用户来说,不会碰根目录下的文件夹,都会在用 户文件夹中(/Users)。
输出说明:
-----------
上面的命令输出中数字后面的字母B,K,M,G,分别代表B=字节;K=千字节;M=兆字节;G=1000兆字节。所以20G比40M大。
同样的道理,如果要看一个用户(以test举例)的各个子目录,可以用下面命令来获得:
sudo du -hd1 /Users/test
需要注意的是,这个命令du随着文件夹中文件的增多,速度会慢。
排序说明:
------------
上面的命令没有对输出结果进行排序,如果需要排序,一个比较简单的做法是,在每个命令的后面加上一些代码即可,比如:
sudo du -hd1 /Users/test
| perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/;
return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'
注意原始命令后面加上去的 “| perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/;
return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'”可以用来排序。
处理:
=======
找到“非正常”的大文件夹,就可以着手清理了。比如使用open命令在Finder中显示该文件夹的内容:
open /Users/test/Library/Caches
这个命令在Finder中打开用户/Users/test中的Library文件夹中的Caches子文件夹。
注:
----------
如果对当前用户操作,都可以把test换为~。比如上面的命令替换为:
sudo du -hd1 ~
open ~/Library/Caches
不过需要注意,一些隐藏文件夹,如Library等,最好不用动,里面保存的你的各种应用配置信息。