to be
a problem slover

寻找大文件大目录

问题描述

这个问题你肯定会反复遇到:磁盘爆了,如何快速找出 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

赞(11) 打赏
欢迎转载,注明出处:刘世明的博客 » 寻找大文件大目录

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下作者

支付宝扫一扫打赏

微信扫一扫打赏