平常在我们系统中,有一些审计的文件夹里面文件多达几十万个,用rm -rf * 根本无济于事,如下所示:
[root@zbdba test]# ls -l |wc -l
500001
[root@zbdba test]# time rm -rf *
-bash: /bin/rm: Argument list too long
real 0m6.118s
user 0m3.905s
sys 0m0.384s
[root@zbdba test]# ls -l |wc -l
500001
可见rm在这里没法删除了,这时候巧妙的利用一个工具-rsync 该工具主要用户同步、备份等。下面我们使用rsync来删除文件:
首先在test同级目录下新建一个空文件夹:
[root@zbdba data]# mkdir blank
然后:
[root@zbdba data]# time rsync -a --delete blank/ test/
real 0m40.425s
user 0m1.091s
sys 0m10.949s
[root@zbdba data]# cd test
[root@zbdba test]# ls -l |wc -l
1
[root@zbdba test]# ls
[root@zbdba test]# ls -al
可见50万个文件,用了40秒进行删除。效率还是不错的。