背景
磁盘空间的大小总是跟不上人民日益增长的文件存放需要。
在暂时无法扩容的情况下,就只有删掉一些文件了。
为了快速回收空间,最有效的做法当然是挑大文件下手了。linux下获取文件大小,一般是使用du
命令
du -sh
即可看到文件夹占用空间大小。但du
本身执行很慢,每次又只针对一个文件夹,在这种场景下反复执行来找出大文件,无疑效率低下。
ncdu
就是解决这个问题的。
安装使用
ubuntu下可以
sudo apt-get install ncdu
如果是需要在没有sudo权限没有网络的服务器上使用,那么一种方式是将本地安装好的bin直接拷贝上去,另一种方式就是把源码拷贝上去编译生成了。
看下帮助,ncdu
支持一些参数,包括排除一些文件,导出结果到文件中等。
ncdu -h
ncdu <options> <directory>
-h This help message
-q Quiet mode, refresh interval 2 seconds
-v Print version
-x Same filesystem
-r Read only
-o FILE Export scanned directory to FILE
-f FILE Import scanned directory from FILE
-0,-1,-2 UI to use when scanning (0=none,2=full ncurses)
--si Use base 10 (SI) prefixes instead of base 2
--exclude PATTERN Exclude files that match PATTERN
-X, --exclude-from FILE Exclude files that match any pattern in FILE
--exclude-caches Exclude directories containing CACHEDIR.TAG
但最简单的用法就是不带参数,直接在需要分析的目录下执行ncdu
, 等待ncdu扫描完毕,就会出现一个交互式的界面。
在这里可以看到每个目录的大小,使用方向键或Enter键即可进入和退出具体的目录。
比如发现某个目录占用空间很大,那么就可以一路跟下去找到罪魁祸首,找到之后确认可以删除的话,不用退出ncdu,直接选中后按d
即可。
删除得差不多了,则按q
退出
示例
其他
看到另一种使用ncdu的场景是,定期扫描一次并保存到文件中,这样就可以观察到两次扫描之间的文件变化情况了
这个想法很有意思,暂未实践,mark一下
ncdu-diff
本文地址:https://www.cnblogs.com/zqb-all/p/12591744.html
公众号:https://sourl.cn/A7348c