linux-快速删除五十万+文件的方法

上一篇 / 下一篇  2015-04-03 14:28:54 / 个人分类:linux

linux上,通常都是用rm来删除文件,但同时删除数十万(如五十万)个文件时,会提示:
-bash: /bin/rm: Argument list too long

这时通常考虑用:find . -type f --exec rm -rf {} \;

但这种方式删除时,速度有够慢的

使用rsync可以达到快速删除的目的

例:
1、建立一个空的文件夹:
mkdir /tmp/test
2、用rsync删除目标目录/home/test中的文件:
time rsync --delete-before -a -H --stats /tmp/test/ /home/test/

这样我们要删除的/home/test目录就会被清空了,删除的速度会非常快。
rsync实际上用的是替换原理,处理数十万个文件也是秒级

/home/test目录下有五十万个文件,使用time计时:
# time rsync --delete-before -a -H --stats /tmp/test/ /home/test/
real   0m19.227s
user    0m1.409s
sys     0m16.316s


# time find /home/test/ -type f -exec rm -rf {} \;

real   15m54.156s
user    1m13.325s
sys     12m2.169s


当然,如果文件数量少,就没有必要用这种方式了
直接用rm 更快




TAG: 删除 文件 Linux 方法 linux 大数据量 快速

 

评分:0

我来说两句

Open Toolbar