原文:http://www.weiruoyu.cn/?p=448


最近遇到了一件头疼的事情,一个文件夹里面有120万个小文件,删除不了,查看也是非常慢。并且占用空间100G以上,是一个非常头疼的事情,如果去拷贝,会非常慢。

解决思路,因为ls非常慢,所以希望找到按时间移动,然后再打包,如果每件没用的话,按时间删除即可。

在网上搜索了好多资料,整理并实践。

显示前十个文件

[root@localhost smgpbi]# ls -1 | sort -u | head -10

1.首先查看文件个数,进入所在的文件

# find . -name "*" | wc -l

或者

# ll |grep "^-" |wc -l

2.查看文件个数

查看120天钱的文件个数

# find . -mtime +120 | wc -l

一般如果是小文件,控制在10-20万左右。

解释:-mtime +30 --设置时间为30天前;

-exec mv --查找完毕后执行移动操作;

3.按照时间移动到指定目录里

# find . -mtime +90 -exec mv {} /var/tmp/date_90 \;

4.计算大小

# du -sh date_90

大小一般控制在10-15G最好

5.压缩并打包

更详细的请参考:http://www.weiruoyu.cn/?p=448