快速找出linux下的大文件

这是个经常遇到的问题,比如磁盘空间不足,需要释放空间,又比web故障,快速的找出大文件或者目录,有时能帮我们找到故障的原因并解决。记得刚踏入现公司的第一天就遇到一个web故障,网站访问异常,发现是磁盘空间占满导致的,具体过程就不说了,进而发现一个web目录占用超过170G了,全是数据库备份文件,汗。

回正题,查找当然是用到find命令了,详细的用法大家可以-help查看。下面给个例子:查找磁盘大于100M的文件

# find / -type f -size +100000k | xargs ls -lh | awk '{ print $9 ": " $5 }'
./ibdata1: 10M
./www_flyym_com/flyym_postmeta.MYD: 216M
./www_flyym_com/flyym_posts.MYD: 236M
./www_flyym_com/flyym_posts.MYI: 238M

当然,具体运用的时候,配合du df命令,效果更佳,关于du命令,请参考《linux下查看文件大小-移动文件到指定目录

du -h --max-depth=1 |sort -hr #查看当前所有子目录的大小并排序
find /home/ -type f -size +1G | xargs ls -l #列出/home下大于1G的文件
find /home/ -type f -size +1G -exec du -sh {} \; #列出/home下大于1G的文件
find /home/ -type f -size +1G | xargs rm -rf {}\; #删除/home下大于1G的文件