目录
问题描述
这个问题你肯定会反复遇到:磁盘爆了,如何快速找出 Mac / Linux server 中的大目录、大文件?
解决方案
tldr
- 命令行用方案三、方案四
- 第三方工具看方案五
方案一
命令行遍历目录 sort by size
sudo du -a /var | sort -n -r | head -n 20
sort -n
sort by number
sort -r
reverse sort
方案二
命令行遍历目录 sort by human readable size
sudo du -ah /var |sort -hr | head -n 20
这是对方案一的改进,因为方案一的文件大小是按 byte 展示的,读起来困难,我们肉眼还是喜欢 GB/MB/KB 之类的单位。
-h
sort by human readable size
方案三
不过 du
命令有个问题,如果权限不够经常会打印一大堆的错误信息,如 cannot access xxx
, Operation not permitted
之类,特别是从根目录去找的时候。而我们一般对这些文件不关心,忽略掉错误更清爽。
sudo du -ah /var 2>/dev/null |sort -hr | head -n 20
方案四
有时只关心上层的目录而不关心底层的目录,所以可以通过 --max-depth
来控制遍历目录的层次,减少查询的时间。
sudo du -h --max-depth=1 /var 2>/dev/null |sort -hr | head -n 20
注意:Mac 上的 du
命令不支持 --max-depth
参数,需要使用 -d <number>
来替代,功能一样。
sudo du -h -d 1 /var 2>/dev/null |sort -hr | head -n 20
方案五
如果嫌命令行麻烦,可以使用 ncdu
命令行工具
Mac
brew install ncdu
Ubuntu
apt install ncdu
Centos
yum install ncdu
交互式界面挺友好的
最后插一句,Mac 下还有一个图形化工具不错 – OmniDiskSweeper
。
最新评论